15 de Enero, 2006

Sincronizando OpenBSD con STABLE

Recientemente se han publicado dos correciones relacionadas con la fiabilidad, como apunta la página de la errata para OpenBSD 3.8.

También hay un par de fallos de seguridad, pero después de analizarlos, no tienen impacto en mi servidor. Así que voy a sincronizar el núcleo con STABLE, que no lo había hecho hasta ahora (recordamos que RELEASE, STABLE y CURRENT eran tres amigos). Igual por ahí descubrimos porqué mod_gzip no funciona en 3.8 ;).

Aunque todo esto está muy bien explicado en el FAQ de OpenBSD, me apunto una chuleta por aquí en plan copy & paste para el futuro.

Primero elegimos un servidor CVS anónimo de la lista. En todos pone la frecuencia de actualización, aunque es difícil que nos adelantemos a la sincronicación, hay que tener cuidado por si aún no se ha propagado el arreglo que nos interesa. Una vez tenemos un candidato, preparamos la sesión actual con un par de variables de entorno para CVS:

# export CVSROOT=anoncvs@anoncvs1.usa.openbsd.org:/cvs
# export CVS_RSH=/usr/bin/ssh

Ahora hay dos pasos a seguir, dependiendo de si es la primera vez que cogemos los fuentes o si estamos actualizando lo que ya tenemos. Si hemos comprado los CDs del proyecto, podemos emplear sys.tar.gz como base (va en /urs/src/), y actualizar desde ahí para ahorrar ancho de banda. De todas formas las conexiones actuales tienen mucha bajada, con lo que el proceso tarda solo unos minutos.

Si no tenemos los fuentes:

# cd /usr
# cvs checkout -P -rOPENBSD_3_8 src/sys

En la opción -r pondremos el tag de nuestra versión del sistema para obterer la rama STABLE. Si no empleamos esa opción, se asume que queremos CURRENT.

Si ya tenemos los fuentes y solo queremos actualizar los cambios que se han realizado:

# cd /usr
# cvs -q up -rOPENBSD_3_8 -Pd src/sys

Esta operación es bastante rápida, y puede que algo nos llame la atención: es frecuente que se descarguen más cambios de los que se anuncian en errata, probablemente porque no son lo suficientemente relevantes. Pero eso no quiere decir que no entren en la rama STABLE, así que actualizar con CVS tiene esta ventaja sobre solo aplicar los parches que se van publicando.

Ahora falta, en ambos casos, recompilar el kernel:

# cd /usr/src/sys/arch/i386/conf
# config GENERIC
# cd ../compile/GENERIC
# make clean && make depend && make
(... un tiempo después ...)
# make install

Podemos acelerar mucho el proceso tras la primera compilación si omitimos el make clean, ya que normalmente las correcciones que pasan a STABLE son pequeñas y no tendremos problemas porque solo se recompilen los ficheros modificados. Vamos, aunque sea recomendable usarlo, en este caso puede ser un exceso de celo (aunque a veces puede evitar problemas :P).

Solo falta reiniciar y verificar que todo está OK con un:

$ dmesg | head -1
OpenBSD 3.8-stable (GENERIC) #0: Sun Jan 15 13:10:47 CET 2006

Suelo trabajar con STABLE, aunque todo administrador tiene cosas mejores que hacer que aplicar parches, así que es mejor evaluar cada caso para asegurarnos de que merece la pena el trabajo ;).

Actualización: He instalado mod_gzip-1.3.26.1ap0 y funciona perfectamente, aunque creo que el que debería comprobar este tema es Pedro ;).

Anotación por Juan J. Martínez, clasificada en: openbsd.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: