- ENTRADA 11 -
Actualización mayor a FreeBSD 14
--- Fecha: jue 23 nov 2023 21:50:27 CET
- Actualizaciones -
- 10-02-2024
Para las personas que uséis FreeBSD, recien acaba de salir la versión FreeBSD 14 RELEASE, con soporte hasta noviembre de 2025, así que me dispongo a actualizar mi versión 13.1.
Esto es lo que se conoce como "major update" y en FreeBSD la cosa es diferente a GNU/Linux.
No me extiendo en las bondades de *BSD frente a GNU/Linux, solo diré que al estar todo (kernel, estructura, programas, etc) en manos del mismo equipo, todo es más fácil, pero eso si, se ha de seguir un orden sin saltarse ningún paso, de lo contrario pueden haber desajustes e incompatibilidades que echen a perder el sistema. La secuencia es esta:
freebsd-update fetch freebsd-update install pkg update && pkg upgrade freebsd-update -r 14.0-RELEASE upgrade freebsd-update install reboot freebsd-update install pkg-static install -f pkg pkg update && pkg upgrade /usr/bin/freebsd-update install
¿Por qué repetir tantas veces el comando freebsd-update?. FreeBSD ha de estar dentro del entorno recién actualizado para seguir actualizando, de ahí también el comando reboot.
Primero se ha de actualizar la versión 13 para tener lo último, ya que como dije en el artículo sobre actualización, no puedes pasar de versión a versión si hay otras entre medio.
Así pues, los 2 primeros comandos actualizan el sistema y los paquetes.
Como ya tenemos la última versión de la rama 13, el 3er comando actualiza a la versión mayor.
El 4º comando vuelve a actualizar el sistema, pero ya en la versión 14. Aquí, entre otras cosas, instalará el nuevo kernel.
El 5º comando hace un reboot. Como tenemos nuevo kernel, FreeBSD ha de iniciar con él para seguir actualizando.
El 6º repite la actualización del sistema, pero esta vez detecta que está en la versión 14 (y no 13) y empieza el proceso de nuevo.
El 7º comando sirve para actualizar el sistema de paquetes PKG.
El 8º comando actualiza paquetes.
Y por último, el 9º comando vuelve a revisar la actualización del sistema por si alguno de los paquetes o dependencias debe modificar el sistema.
Preguntando que es gerundio
Como en casi todas las actualizaciones, el sistema instala archivos de configuración, pero nosotras ya tenemos los nuestros, así que FreeBSD nos va a preguntar por las diferencias entre los suyos y los nuestros, en un proceso llamado "merge".
Para ello el sistema ejecuta el comando diff para mostrarnos las diferencias. Si ya conoces diff, pasa al siguiente capítulo, si no, sigue leyendo.
NOTA: Todo este proceso se ejecuta desde consola mediante vi
Diff nos va a mostrar las diferencias por consola:
<<<<<<< current version # $FreeBSD$ # wheel:*:0:root,moribundo ======= wheel:*:0:root >>>>>>> 14.0-RELEASE toor:*:0:0:Bourne-again Superuser:/root: daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
El contenido de nuestro archivo empieza en "<<<<<<< current version" y acaba en "======" y el mismo contenido similar al nuestro que trae la versión 14 acaba en ">>>>>>> 14.0-RELEASE".
Para hacerlo bien has de reemplazar la versión nueva por la tuya, poniendolo después de ====== y borrar el que viene por defecto. También borrarás los signos mencionados. Quedará así:
wheel:*:0:root,moribundo toor:*:0:0:Bourne-again Superuser:/root: daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
He borrado desde "<<<<<<< current version" hasta ">>>>>>> 14.0-RELEASE" dejando solo lo que ya tenía y borrando el que FreeBSD 14 trae predeterminado. Lo demás se dejará tal cual, aunque puedes revisar el contenido que te interese y hacer modificaciones.
En mi caso mergeé los siguientes archivos:
- /etc/passwd
- /etc/shells
- /etc/group
- /etc/sysctl.conf
- /etc/login.conf
- /etc/ntp.conf
- /etc/master.passwd
Ports
Si tienes ports, el comando portsnap ha sido eliminado de esta versión 14, aunque se mantiene hasta final de ciclo de la versión 13. Si aun así quieres hacerlo, instala portsnap y ejecuta:
portsnap fetch update freebsd-update install
Pero los propios desarrolladores recomiendan no usarlo, y hacerlo así:
pkg install git git clone https://git.FreeBSD.org/ports.git /usr/ports
NOTA: Portsnap pasará a estar disponible en los ports, en ports-mgmt/portsnap
Compatibilidad Linux
Si tienes la compatibilidad con Linux, posiblemente te salga un error en el penúltimo paso:
Upgrading linux_base-c7 from 7.7.1908_1 to 7.8.2003_1...
Cannot install package: kernel missing 64-bit Linux support
pkg: PRE-INSTALL script failed
Esto es debido a que pese a que lo tenemos funcionando, la nueva versión no lo sabe, así que tenemos que cargar el módulo linux64.ko y volver a upgradear:
kldload linux64.ko pkg upgrade
Y hasta aquí el artículo. Un consejo, ármate de tiempo, porque el proceso es largo, y si tienes un equipo modesto, aun más (en mi laptop del 2008 estuve 3 horas)
Tags #freebsd #update
/blog/fbsd/