miércoles, 19 de septiembre de 2007

Procedimiento de Compilación e Instalación de Zona de Tiempo para linux para adaptar el cambio del nuevo Huso Horario de Venezuela a GMT-4:30 Debian

Este es el procedimiento modificado para Debian que un amigo hizo a partir del que ya publiqué:

"Partiendo del tuyo hice uno para Debian, te lo envío a continuación. Hay ciertos cambios al final."

Procedimiento para Debian para cambio de horario
================================================
1.- dpkg -l egrep tzdata

2.- aptitude install tzdata

3.- Descargar glibc-2.3.6.ds1.tar.bz2 (no especificó el link pero no es dificil encontrarlo)

4.- cd/usr/local/src/ (directorio de descarga de la libreria)

5.- Ejecutar: tar xvfj glibc-2.3.6.ds1.tar.bz2

6.- cd glibc-2.3.6/timezone/

7.- cp southamerica /tmp/

8.- cd /tmp/

9.- vi southamerica (modifica el archivo southamerica agregandole la información adicoinal para convertirlo a GMT-4:30)

10.- /usr/sbin/zic -d /tmp /tmp/southamerica

11.- cp /usr/share/zoneinfo/America/Caracas /root/

12.- mv /root/Caracas Caracas-respaldo-19.09.2007

13.- /usr/sbin/zic southamerica

14.- Ejecutar tzconfig - Seleccionar América y luego escribir Caracas

15.- Comprobar con: zdump -v /etc/localtime

Espero que también les sirva.

Cambio de Zona de tiempo para nuevo Huso Horario de Venezuela Windows

Elaborado por: Ing. Ender Alexander Mujica Díaz (emujica AT cantv.net)

Nota: Este este procedimiento, fue probado en una maquina con Windows XP SP2 (otros amigos ya lo probaron en Windows 2K y 2K3.

Creación de una zona de tiempo especifica:

1.- Ejecutar el archivo tzedit.exe que viene en el archivo tzedit.zip. se puede obtener en el link indicado al final de este documento.

2.- Colocar la siguiente información en los espacios indicados:

Time Zone Name: (GMT-04:30) Caracas, Venezuela

Abbreviation: SA Western NewStandard Time

Offset from GMT: -4:30

3.- Presionar OK y esto salvará la zona de tiempo en el registro de Windows bajo la siguiente hoja:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Time
Zones\


4.- Luego presionar OK nuevamente para cerrar la aplicación tzedit.exe.

Cambiar la zona de tiempo en la maquina:

1.- Haga doble clic en el reloj ubicado en la parte derecha de la barra de tareas y una vez que abra selecciones la pestaña Zona horaria o Time Zone dependiendo del idioma del Sistema Operativo.

2.- Despliegue el menú y localice la nueva zona horaria que acabamos de crear. En este caso: (GMT-04:30) Caracas, Venezuela.

3.- Luego presione Aplicar o Apply.

4.- Una vez que haga el cambio verá como el reloj se la maquina se retrasa 30 minutos.

5.- El cambio de la zona horaria se puede observar también a nivel del registro de Windows. Bajo la siguiente Hoja:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

Anexo:

Link para descargar archivo tzediz.zip.

http://www.dynawell.com/reskit/microsoft/win2000/tzedit.zip


Compilación e Instalación de Zona de Tiempo para linux para adaptar el cambio del nuevo Huso Horario de Venezuela a GMT-4:30 Fedora - Red Hat

Elaborado por: Ing. Ender Alexander Mujica Díaz (emujica AT cantv.net)

Nota: Este procedimiento fue probado en una maquina con Fedora Core 6, sin embargo, debe ser compatible con todos los sistemas que manejen el formato tzfile para la definición de zonas de tiempo.

Modificar y compilar una zona de tiempo:

Fedora y muchas otras distribuciones de Linux y BSD incluyen archivos de zonas de tiempo en el directorio /usr/share/zoneinfo, el cual es parte del paquete libc6. En Fedora Core 6 de la maquina instalada donde se realizó y probó este procedimiento se encontraba instalada la librería glibc versión 2.5-3 (glibc-2.5-3).

1.- Validar que esté instalado el paquete de utilidades y definiciones de zona de tiempo:

$rpm -qa grep tzdata

2.- Si no se encuentra instalado proceda a bajarlo. Puede usar yum en el caso de Fedora

$ yum install tzdata*

3.- Descargar las fuentes de la libreria glibc-2.5-3 de uno de los mirror de fedora (http://mirror.aarnet.edu.au/pub/fedora/linux/core/6/source/SRPMS/glibc-2.5-3.src.rpm). Por defecto no vienen instaladas.

4.- Validar si está creado el directorio /usr/src/redhat/SOURCES/ de lo contrario proceder a crearlo.

$ mkdir /usr/src/redhat/SOURCES/

5.- Instalar las fuentes de la librería:

$ rpm -Uvh glibc-2.5-3.src.rpm

6.- Esta se quedará instalada en el directorio /usr/src/redhat/SOURCES/ y en el encontrará archivo glibc-2.5-20061008T1257.tar.bz2

7.- Ingresar al directorio /usr/src/redhat/SOURCES/

$ cd sr/src/redhat/SOURCES/

8.- Descomprimir el archivo glibc-2.5-20061008T1257.tar.bz2:

$tar xvfj glibc-2.5-20061008T1257.tar.bz2

9.- Ingresar al directorio timezone dentro del directorio glibc-2.5-20061008T1257 creado al descomprimirse

$cd glibc-2.5-20061008T1257/timezone

10.- Copiar el archivo "southamerica" a al directorio /tmp, en donde se realizarán los cambios al archivo y se compilará.

$cp southamerica /tmp/

11.-Ingresar al directorio /tmp

$cd /tmp

12.- Editar el archivo "southamerica"

$ vi southamerica

13.- Buscar a la etiqueta #Venezuela y debajo de ella cambiar la línea:

-4:00 - VET

Por estas líneas:

-4:00 - VET 2007 Sep 22

-4:30 - VET

14.- La definición de la zona America/Caracas deberá quedar así:

# Venezuela

# Zone NAME GMTOFF RULES FORMAT [UNTIL]

Zone America/Caracas -4:27:44 - LMT 1890

-4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time?

-4:30 - VET 1965 # Venezuela Time

-4:00 - VET 2007 Sep 23

-4:30 - VET

15.- Compilar el archivo de zonas para Suramérica para ello ejecutar el comando:

$/usr/sbin/zic -d /tmp /tmp/southamerica

16.- Esto generará los siguientes directorios dentro de /tmp

America/ Atlantic/ Pacific/

17.- Ejecutar el siguiente comando para ver la definición de la zona para Caracas.

$zdump -v /tmp/America/Caracas

18.- Aparecerán todas las definiciones de horario que se han tenido para Venezuela a partir de 1901 y la que se ha modificado siguiendo este procedimiento:

/tmp/America/Caracas Fri Dec 13 20:45:52 1901 UTC = Fri Dec 13 16:18:12 1901 VET isdst=0 gmtoff=-16060

/tmp/America/Caracas Sat Dec 14 20:45:52 1901 UTC = Sat Dec 14 16:18:12 1901 VET isdst=0 gmtoff=-16060

/tmp/America/Caracas Mon Feb 12 04:27:39 1912 UTC = Sun Feb 11 23:59:59 1912 VET isdst=0 gmtoff=-16060

/tmp/America/Caracas Mon Feb 12 04:27:40 1912 UTC = Sun Feb 11 23:57:40 1912 VET isdst=0 gmtoff=-16200

/tmp/America/Caracas Fri Jan 1 04:29:59 1965 UTC = Thu Dec 31 23:59:59 1964 VET isdst=0 gmtoff=-16200

/tmp/America/Caracas Fri Jan 1 04:30:00 1965 UTC = Fri Jan 1 00:30:00 1965 VET isdst=0 gmtoff=-14400

/tmp/America/Caracas Sun Sep 23 03:59:59 2007 UTC = Sat Sep 22 23:59:59 2007 VET isdst=0 gmtoff=-14400

/tmp/America/Caracas Sun Sep 23 04:00:00 2007 UTC = Sat Sep 22 23:30:00 2007 VET isdst=0 gmtoff=-16200

/tmp/America/Caracas Mon Jan 18 03:14:07 2038 UTC = Sun Jan 17 22:44:07 2038 VET isdst=0 gmtoff=-16200

/tmp/America/Caracas Tue Jan 19 03:14:07 2038 UTC = Mon Jan 18 22:44:07 2038 VET isdst=0 gmtoff=-16200



19.- Encontrará dos definiciones para el año 2007.

/tmp/America/Caracas Sun Sep 23 03:59:59 2007 UTC = Sat Sep 22 23:59:59 2007 VET isdst=0 gmtoff=-14400

/tmp/America/Caracas Sun Sep 23 04:00:00 2007 UTC = Sat Sep 22 23:30:00 2007 VET isdst=0 gmtoff=-16200

En ellas se puede apreciar lo siguiente:

Sat Sep 22 23:59:59 2007 VET isdst=0 gmtoff=-14400, lo cual significa que se usará GMT-4 hasta el 22/09/2007 a las 23:59:59

Sat Sep 22 23:30:00 2007 VET isdst=0 gmtoff=-16200, lo cual significa que luego cambiará a GMT-4:30 y moverá la hora a las 23:30:00 transcurrido un segundo después.


Instalación de Nueva Zona ya compilada:

1.- Validar que la definición de zona de tiempo previamente configurada sea Venezuela/Caracas (VET) en /etc/localtime.

$zdump -v /etc/localtime

/etc/localtime Fri Dec 13 20:45:52 1901 UTC = Fri Dec 13 16:18:12 1901 VET isdst=0 gmtoff=-16060

/etc/localtime Sat Dec 14 20:45:52 1901 UTC = Sat Dec 14 16:18:12 1901 VET isdst=0 gmtoff=-16060

/etc/localtime Mon Feb 12 04:27:39 1912 UTC = Sun Feb 11 23:59:59 1912 VET isdst=0 gmtoff=-16060

/etc/localtime Mon Feb 12 04:27:40 1912 UTC = Sun Feb 11 23:57:40 1912 VET isdst=0 gmtoff=-16200

/etc/localtime Fri Jan 1 04:29:59 1965 UTC = Thu Dec 31 23:59:59 1964 VET isdst=0 gmtoff=-16200

/etc/localtime Fri Jan 1 04:30:00 1965 UTC = Fri Jan 1 00:30:00 1965 VET isdst=0 gmtoff=-14400

/etc/localtime Mon Jan 18 03:14:07 2038 UTC = Sun Jan 17 23:14:07 2038 VET isdst=0 gmtoff=-14400

/etc/localtime Tue Jan 19 03:14:07 2038 UTC = Mon Jan 18 23:14:07 2038 VET isdst=0 gmtoff=-14400

2.- Realizar un respaldo del archivo de zona de tiempo “Caracas” previamente existente, ubicado en el directorio /usr/share/zoneinfo/America a /tmp.

3.- Copiar el nuevo archivo de zona de tiempo “Caracas” en el directorio /usr/share/zoneinfo/America

$cp /tmp//America/Caracas /usr/share/zoneinfo/America/

4.- Actualizar la zona de tiempo actual que se ubica encuentra configurada en /etc/localtime, en este caso "Venezuela/Caracas" con el siguiente comando:

$tzdata-update Venezuela/Caracas

5.- Validar que la nueva definición esté instalada después de aplicar la actualización de la zona de tiempo.

$zdump -v /etc/localtime

/etc/localtime Fri Dec 13 20:45:52 1901 UTC = Fri Dec 13 16:18:12 1901 VET isdst=0 gmtoff=-16060

/etc/localtime Sat Dec 14 20:45:52 1901 UTC = Sat Dec 14 16:18:12 1901 VET isdst=0 gmtoff=-16060

/etc/localtime Mon Feb 12 04:27:39 1912 UTC = Sun Feb 11 23:59:59 1912 VET isdst=0 gmtoff=-16060

/etc/localtime Mon Feb 12 04:27:40 1912 UTC = Sun Feb 11 23:57:40 1912 VET isdst=0 gmtoff=-16200

/etc/localtime Fri Jan 1 04:29:59 1965 UTC = Thu Dec 31 23:59:59 1964 VET isdst=0 gmtoff=-16200

/etc/localtime Fri Jan 1 04:30:00 1965 UTC = Fri Jan 1 00:30:00 1965 VET isdst=0 gmtoff=-14400

/etc/localtime Sun Sep 23 03:59:59 2007 UTC = Sat Sep 22 23:59:59 2007 VET isdst=0 gmtoff=-14400

/etc/localtime Sun Sep 23 04:00:00 2007 UTC = Sat Sep 22 23:30:00 2007 VET isdst=0 gmtoff=-16200

/etc/localtime Mon Jan 18 03:14:07 2038 UTC = Sun Jan 17 22:44:07 2038 VET isdst=0 gmtoff=-16200

/etc/localtime Tue Jan 19 03:14:07 2038 UTC = Mon Jan 18 22:44:07 2038 VET isdst=0 gmtoff=-16200

6.- Finalmente, sólo quedará esperar a que llegué el día y la hora para que la maquina hará el resto del trabajo en función de la definición.

Nota: No deberá preocuparse por cambiar la hora de la maquina.



Distribución del archivo de zona de tiempo para Venezuela/Caracas:

1.- Si quiere aplicar el archivo de tiempo modificado para Venezuela/Caracas a otras maquinas con distribuciones de Linux o BSD redistribuir no será necesario que tenga que compilarlo nuevamente en cada una de ellas, sólo tiene que copiarlo a la maquina destino y seguir los pasos 1 a 6 de la sección anterior.

Pruebas a realizar antes de que llegue el momento de realizar el cambio de horario oficial.

Si quiere realizar una prueba de concepto y validación en una maquina que no se encuentre en un ambiente de producción puede adelantar el cambio y crear un archivo de zona de tiempo con una fecha y hora diferente a la establecida compilarlo e instalarlo según lo indicado en las secciones anteriores. Para ello debe hacer lo siguiente:

1.- En el punto 13 de la sección “Modificar y compilar una zona de tiempo”. Buscar a la etiqueta #Venezuela y debajo de ella cambiar la línea:

-4:00 - VET

Por estas líneas:

-4:00 - VET 2007 Mes Dia hh:mm:seg

-4:30 - VET

2- La definición de la zona America/Caracas deberá quedar así si el cambio, por ejemplo quieres que se realice a las 11:29:59 el día 19 de Septiembre de 2007

# Venezuela

# Zone NAME GMTOFF RULES FORMAT [UNTIL]

Zone America/Caracas -4:27:44 - LMT 1890

-4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time?

-4:30 - VET 1965 # Venezuela Time

-4:00 - VET 2007 Sep 19 11:29:59

-4:30 - VET

3.- Luego deberá continuar con los pasos 14 a 19 de la misma sección y finalmente aplicar lo indicado en la sección “Instalación de Nueva Zona ya compilada” con la diferencia de que la fecha y hora del cambio se aplicaran según lo que haya indicado en el punto 1 se esta sección.



Anexos:

Links de interés:

http://www.redhat.com/support/resources/faqs/dst/

http://www.linuxquestions.org/questions/showthread.php?t=373263

http://mirror.aarnet.edu.au/pub/fedora/linux/core/6/source/SRPMS/

http://wiki.debian.org/TimeZoneChanges

Mayor detalle puede encontrarlo en el Manual del compilador de zona de tiempo “zic”:

$ man zic

Nota Final: Es posible que se requieran modificaciones menores a este documento si desea aplicar la compilación e instalación en otra distribución diferente a Fedora o RedHat.

Cambio de configuracion de zona horaria a GMT-430 en linux y Windows.

Ya tengo el procedimiento para cambiar la zona horaria a GMT-430 en servidor linux y en Windows. Es posible que el dia de hoy este colocando el procedimiento.