Jump to content

Actualizando FreeBSD y sus programas


Shogun
 Share

Recommended Posts

Buenas,

He creado este tutorial porque a menudo me encuentro a gente que usa versiones de FreeBSD de la época de los dinosaurios y cuando necesito hacer algún trabajo para ellos me paso horas actualizando. Así que hoy os voy a enseñar a mantener todo al día.

No me responsabilizo de ningún daño que podáis causar por medio de estos comandos,y que aconsejo hacer un backup antes de nada si no estáis seguros de lo que hacéis.

Dicho esto, a no ser que tengáis una versión realmente vieja, es poco probable que rompáis nada que no pueda arreglarse.

A. Actualizando el Sistema Operativo

¿De qué sirve tener actualizado el FreeBSD si el Metin es mas viejo que mear de pie?, os preguntaréis. Bien, lo primero y más obvio por seguridad. Las versiones obsoletas del S.O. no reciben parches de seguridad. Segundo, por rendimiento, ya que el software más reciente es más estable y rápido. Y tercero por comodidad, ya que no es ni siquiera posible instalar nada si tu S.O. está obsoleto.

Dento de FreeBSD podemos distinguir entre las versiones mayores (ej. 13) y menores (12.3)

Para cerciorarnos de la version actual de nuestro FreeBSD, basta usar este comando:

uname -a

Obediente, el FreeBSD nos contestará con una ristra de números que incluyen la versión. Por ejemplo algo como:

FreeBSD miservidor.com 13.1-RELEASE FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC amd64

Ahora iremos a la web oficial de FreeBSD (

Debes iniciar sesión para ver el contenido del enlace en esta publicación.
) para informarnos de cuales son las versiones actuales con soporte. Esto cambia frecuentemente, así que comprobadlo siempre. Veamos que dice a día de hoy freebsd.org:

z1nm9wl.png

Pues según cual sea nuestra propia versión y cuales aparezcan aquí, tenemos tres escenarios diferentes a considerar:

 

1. Tenemos una versión soportada 😀

Pongamos que ya tenemos la 12.3. En este caso, podemos simplemente actualizar nuestra versión actual con los últimos parches, sin necesidad de pasar a una versión superior:

freebsd-update fetch install

Veremos como sale una lista de archivos a actualizar (si véis que se detiene y salen dos puntos, escribid q y enter, que es el comando quit en el pager less que se utiliza por defecto para mostrar texto. Así q, enter, q, enter hasta que dejen de salir los dichosos dos puntos y termine el asunto)

 

2. Tenemos una versión principal soportada, pero no la secundaria 😅

NOTA: antes de empezar, recomiendo para hacer la tarea más fácil establecer el editor ee como editor por defecto para el sistema, ya que el vi es bastante complicado de utilizar. Para ello podemos hacer esto (suponiendo que somos root y no hemos cambiado el shell por defecto, en caso contrario editar el fichero rc correspondiente .bashrc .zshrc etcétera)

echo 'setenv EDITOR ee' >> /root/.cshrc

Y entonces podemos hacer login de nuevo para comprobar que el editor por defecto es ahora ee, poniendo por ejrmplo

crontab -e

Veremos que se abre el ee si hemos hecho todo correctamente.

Ahora si, pasemos a la explicación de como resolver este escenario número 2:

Pongamos que tenemos la versión 12.1. En este caso, tocaría actualizarse a, por ejemplo, la versión 12.3 que es la versión más antigua soportada, y se hace de esta manera:

freebsd-update upgrade -r 12.3-RELEASE

Esta vez además de la típica ristra de archivos por actualizar habrá preguntas esotéricas como:

"Does this seem reasonable?"

A falta de mayor información para responder a tal pregunta, podemos simplemente escribir la y de yes  y esperar que todo vaya bien.

Posiblemente haya también archivos de configuración del sistema que cambien: /etc/ssh/sshd_config es uno que cambia frecuentemente por ejemplo, y si hemos hecho modificaciones propias en ellos nos preguntará con cual nos queremos quedar, dándonos la opcion de añadir o quitar líneas por nuestra cuenta (de ahí lo del editor de texto). 

Una vez terminada la descarga  de la actualización, se nos pedirá ejecutar freebsd-update install, también es probable que se nos pida reiniciar, y una vez hayamos reiniciado seguramente tendremos que ejecutar freebsd-update install una vez más. Aconsejo prestar atención a lo que dice en la pantalla durante el proceso.

 

3. Tenemos una versión principal no soportada 😪

Siguiendo con el ejemplo del screenshot que tomé de freebsd.org -¡recordad que esto cambia y debéis comprobar en el momento la situación vigente!- Imaginemos ahora que tenemos la versión 11.3. Dado que ninguna versión de la 11 tiene ya soporte, sería necesario actualizar a la versión 12.3 de golpe. El procedimiento es exactamente el mismo que he descrito antes con las siguientes excepciones:

- Una vez terminado todo el proceso, se nos aconsejará reinstalar el software que hayamos instalado a través de los ports. Si no sabes lo que es, o no tienes, puedes limitarte a hacer un pkg update.

- Dado que es una actualización importante, es posible que ciertas cosas dejen de funcionar, o lo hagan de manera diferente.

- Se nos permitirá instalar versiones más nuevas de cierto software, que las que estaban disponibles antes.

En el caso de que nos encontremos en un callejón sin salida y queramos volver a la versión anterior, podemos hacer un rollback:

freebsd-update rollback

 

B: El software

Con el software me refiero a MySQL, nginx, php-fpm y demás software oficial disponible a través de dos métodos:

- Los paquetes (packages), binarios precompilados

- Los ports, que nos permiten compilar el código por nuestra cuenta y escoger qué queremos y que no

Anteriormente, era necesario recurrir con frecuencia al sistema de ports para instalar muchas cosas. Hoy en día es raro que haga falta compilar nuestro propio software así que voy a obviar esta parte.

Manejando los "packages"

Actualizar todo lo que tengamos en el sistema:

pkg update && pkg upgrade

En este punto se nos dirá qué se va a borrar, reinstalar o instalar, según dependencias y demás. Mucho ojo los usuarios de MariaDB que hay paquetes que insisten en instalar MySQL en su lugar. Si véis que algun paquete da problemas, podéis bloquearlo con pkg lock <paquete> para que ya no se actualice automáticamente.

Ver la lista de software instalado:

pkg info

Buscar software en el repositorio de paquetes:

pkg search <frase a buscar>

ejemplo: pkg search php

Instalar software:

pkg add <nombre del software>

ejemplo: pkg add php81

Borrar software:

pkg delete <software>

ejemplo: pkg delete mysql56-server

 

Finalmente comentar algo - qué pasa si queremos pasar a una versión más nueva de, por ejemplo, mysql o php?

El comando pkg upgrade no va a hacer esto por su cuenta. Si tenemos MySQL 5.6, va a instalar las actualizaciones disponibles para esa versión, y ya. Al igual que pasaba con el sistema operativo, si queremos pasar a una versión más nueva, tenemos que especificarlo.

Si tenemos MySQL 5.6 y queremos por ejemplo instalar MySQL 8.0 habrá que hacer esto:

pkg add mysql80-server

Es posible que se nos informe de un conflicto, en cuyo caso procede desinstalar primero la versión anterior:

pkg delete mysql56-server mysql56-client

Recordad que en FreeBSD sólo se desinstala el binario, nuestros datos y ficheros de configuración existentes no se tocarán. Además, tenemos que reiniciar el servicio nosotros mismos (en este caso con service mysql-server restart) pues el instalador tampoco lo hará por nosotros y la versión anterior seguira ejecutándose mientras tanto.

Una vez más, repito, prestad atención al texto que sale en pantalla porque nos informa de posibles problemas, o de qué hacer después de la instalación.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...