Pasaron dos releases desde que actualicé mi servidor OpenBSD por última vez, por lo que ya es hora de actualizarlo nuevamente. He aquí la experiencia migrando dos releases de manera consecutiva.

Es importante destacar, y así lo hace la documentación oficial en cada release, que en OpenBSD las actualizaciones sólo son posibles entre releases consecutivas. No es posible saltar directamente desde la versión 6.0 a la versión 6.2, sino que se debe primero actualizar a la versión 6.1 para luego sí pasar de la versión 6.1 a la 6.2.

Siempre es recomendable realizar y testear este proceso en una máquina clonada, a fin de evitar inconvenientes con sistemas en producción.

El proceso de actualización entre versiones es siempre similar, tal como lo he documentado previamente en el artículo Cómo migrar OpenBSD 5.9 a 6.0 , con ajustes menores en cada actualización.

Siempre que se libera una nueva versión, OpenBSD publica un documento respecto a la actualización desde la versión previa. Por lo tanto, para pasar desde la versión 6.0 a 6.2, me guié en los siguientes:

Además de documentar el proceso de migración en sí, éstos detallan todos los cambios que surgen en los archivos de configuración, servicios, aplicaciones, usuarios, etc. Generalmente, antes y después de llevar a cabo una actualización, es necesario realizar ciertas tareas manuales (dependiendo de cada instalación), las cuales están siempre perfectamente documentadas (al punto de simplemente hacer copy&paste de comandos en la terminal).

Para comenzar entonces, debo actualizar desde la versión 6.0 a la versión 6.1. Realizar las tareas previas requeridas y descargar la imagen del nuevo kernel (6.1) desde cualquier mirror:

# rm -fr /usr/share/man
# wget https://mirror.leaseweb.com/pub/OpenBSD/6.1/amd64/bsd.rd
# mv bsd.rd /bsd.rd.61
# reboot

La imagen del kernel debe quedar en el raíz y puede tener cualquier nombre, en este ejemplo bsd.rd.61.

Bootear el RAM disk del kernel 6.1 (tal como explica detalladamente el artículo Cómo migrar OpenBSD 5.9 a 6.0 ) y actualizar el sistema seleccionando la opción u. Luego seguir la instalación paso a paso.

Al finalizar la actualización del sistema base, reiniciar:

# reboot

Esto inicia el nuevo sistema OpenBSD 6.1:

# uname -a
OpenBSD obsd.linuxito.com 6.1 GENERIC#19 amd64

No es necesario actualizar los paquetes ahora, ya que se hará al finalizar el upgrade a 6.2.

Repetir el proceso anterior, esta vez para la versión 6.2:

# wget https://mirror.leaseweb.com/pub/OpenBSD/6.2/amd64/bsd.rd
# mv bsd.rd /bsd.rd.62
# reboot

Iniciar la imagen bsd.rd.62 y actualizar el sistema. Al finalizar, reiniciar nuevamente:

# reboot

Con esto hemos llevado nuestro sistema OpenBSD 6.0 a 6.2 en dos etapas:

# uname -a
OpenBSD obsd.linuxito.com 6.2 GENERIC#132 amd64

En este punto ya es posible actualizar los paquetes. Para ello, cambiar la variable PKG_PATH para que apunte al repositorio de paquetes correspondiente a la arquitectura del sistema instalado, para la nueva versión de OpenBSD (es tan simple como cambiar "6.0" por "6.2" en la ruta de la URL). A tal fin, editar el perfil:

# nano /etc/profile

La variable PKG_PATH debe quedar así:

#export PKG_PATH="http://mirrors.unb.br/pub/OpenBSD/6.0/packages/amd64/"
export PKG_PATH="http://mirrors.unb.br/pub/OpenBSD/6.2/packages/amd64/"

Activar el nuevo perfil:

# . /etc/profile

Y actualizar los paquetes:

# pkg_add -u

El último paso en la actualización consiste en proceder con la limpieza y adaptación del sistema, de acuerdo a la salida de pkg_add -u:


[...]

Read shared items: ok
Look in /usr/local/share/doc/pkg-readmes for extra documentation.
--- -cyrus-sasl-2.1.26p17 -------------------
You should also run rm -rf /var/sasl2/*
--- -dbus-1.10.8v0 -------------------
Remember to update /etc/machine-id
--- -libxml-2.9.3 -------------------
Remember to update /var/db/xmlcatalog
--- -php-5.6.23p0 -------------------
You should also run rm -f /etc/php-5.6/php-5.6.sample/*
File /etc/php-5.6.sample/opcache.ini does not exist
--- -samba-4.4.5 -------------------
You should also check /etc/samba/smb.conf (which was modified)

Revisar esta salida con detenimiento y realizar todos los cambios que el gestor de paquetes recomienda o solicita. En este caso tuve que llevar a cabo lo siguiente:

# rm -fr /var/sasl2/*
# rm -f /etc/php-5.6/php-5.6.sample/*
# nano /etc/samba/smb.conf

Finalmente realizar todas las tareas que se indican en ambas guías de migración (de 6.0 a 6.1 y de 6.1 a 6.2), siempre que sean pertinentes a la instalación (muchas modificaciones son relativas a aplicaciones o paquetes no instalados o utilizados:

# userdel uucp
# groupdel news
# rm -fr /var/spool/uucp*
# cd /usr/X11R6/
# rm bin/koi8rxterm bin/uxterm
# rm share/X11/app-defaults/KOI8RXTerm share/X11/app-defaults/UXTerm
# rm man/man1/koi8rxterm.1 man/man1/uxterm.1
# makewhatis
# rm -rf /usr/libdata/perl5/site_perl \
/usr/bin/perl5* \
/usr/lib/libperl.so.17.* \
/usr/libdata/perl5/*-openbsd/5.*/ \
/usr/bin/a2p \
/usr/bin/config_data \
/usr/bin/find2perl \
/usr/bin/psed \
/usr/bin/s2p \
/usr/libdata/perl5/CGI* \
/usr/libdata/perl5/Locale/Codes/Constants.pod \
/usr/libdata/perl5/Module/Build* \
/usr/libdata/perl5/Package \
/usr/libdata/perl5/inc \
/usr/libdata/perl5/pod/a2p.pod \
/usr/libdata/perl5/unicore/lib/Gc/Lt.pl \
/usr/libdata/perl5/unicore/lib/Hyphen/Y.pl \
/usr/libdata/perl5/unicore/lib/LOE \
/usr/libdata/perl5/unicore/lib/NChar \
/usr/libdata/perl5/unicore/lib/PatWS \
/usr/libdata/perl5/unicore/lib/Perl/_XExtend.pl \
/usr/libdata/perl5/unicore/lib/Perl/_XRegula.pl \
/usr/libdata/perl5/unicore/lib/Perl/_XSpecia.pl \
/usr/libdata/perl5/unicore/lib/Space \
/usr/libdata/perl5/version/vpp.pm
rm -f /dev/sound*

Revisar cuidadosa y detenidamente ambas guías de actualización, especialmente las secciones "Configuration and syntax changes", las cuales dependen de cada instalación en particular.

Verificar que todos los servicios y aplicaciones funcionen correctamente y planificar el pasaje a producción.


Tal vez pueda interesarte


Compartí este artículo