Migrando de Debian Jessie a Stretch

Hace dos años le tocó el turno a Wheezy pasando a Jessie. Ahora tenemos con nosotros la nueva release estable de Debian, nombre en clave Stretch:

Tarde o temprano tendremos que actualizar nuestros servidores y escritorios que utilicen la distro. Cuanto antes nos pongamos manos a la obra mejor.

¿Qué cambios incorpora Debian Stretch?

Respecto a las nuevas versiones de software que incorpora esta release destacaremos:

  • Kernel Linux 4.9 LTS
  • PHP 7.0
  • Apache 2.4.25
  • LibreOffice 5.2
  • OpenJDK 8 (adiós PermGen, hola Metaespacios)
  • OpenSSH 7.4p1
  • OpenSSL 1.1.0f
  • Firefox 52.2
  • Vim 8
  • X.Org Server 1.19.2
  • systemd 232
  • Compilador gcc 6.3
  • Para aquellos que utilicéis entorno gráfico -esperemos que no en un servidor- la versión de los principales entornos de escritorio será: GNOME 3.22, KDE 5.8, Xfce 4.12, MATE 1.16 y LXDE 0.11.
  • En el campo de seguridad se incorporan nuevos paquetes para análisis forense

Cambios que debemos tratar con bandera roja ya que pueden resultar problemáticos:

  • Se retira MySQL, desde ahora tendremos MariaDB. Esto es muy importante para aquellos que utilicéis BBDD MySQL. Si bien el cambio debería ser “transparente” realizad antes backups de vuestras BBDD.
  • Cambio en el nombre de interfaces de red: olvídate de las clásicas ethX (eth0,eth1…) ahora se llamarán ens0, enp1s1, enp0s3, etc… A bote pronto todos los scripts en los que tengamos variables relativas a interfaces necesitarán su correspondiente repaso.
  • Se retira soporte para powerpc y se añade para la arquitectura MIPS «little-endian» de 64 bits (mips64el)

Recomendaciones previas

En primer lugar debemos hacer honor a la primera regla de oro de los sysadmins antes de un cambio: hacer backup de lo que actualmente tenemos. Si es posible de la máquina entera (a día de hoy normalmente virtualizada) y de los datos más importantes como ficheros de configuración, Bases de Datos, etc… En caso de que posteriormente -incluso si la actualización de sistema sale bien- tengamos que restaurar ciertos parámetros.

También debemos comprobar que tenemos suficiente espacio en disco para realizar la actualización. Un df -h nunca vendrá mal:

Si conectamos con nuestro sistema via SSH, podemos utilizar screen para cubrirnos las espaldas en caso de pérdida de conexión de red con nuestro servidor durante el proceso de upgrade.

No olvidar los paquetes de terceras fuentes o binarios compilados que tengamos en el sistema ya que después de la actualización pueden dejar de funcionar o no hacerlo adecuadamente.

Por último, conviene echar un vistazo inicial a las notas de release de nuestra arquitectura.

Actualizando nuestro sistema

Las bases del proceso de actualización no varían respecto al paso de Wheezy a Jessie que comenté hace dos años. No obstante vamos a ver uno a uno los pasos a dar en esta nueva migración:

  1. Comprobamos nuestra versión actual con lsb_release -d

  2. Actualizamos todo nuestro software actual a la última versión disponible lanzando apt-get update && apt-get upgrade
  3. Sustituimos los repositorios de jessie por los de stretch en /etc/apt/sources.list. Podemos hacerlo de varias formas:
    • Abrimos con vi el fichero /etc/apt/sources.list y lanzamos:
      :%s/jessie/stretch/g
      
    • Con sed:
      sed -i -e 's/jessie/stretch/g' /etc/apt/sources.list
      
    • Abrimos con vi sources.list y editamos el fichero a mano sustituyendo cada ocurrencia de jessie por stretch

    Elijamos un método u otro teniendo por ejemplo el siguiente fichero sources.list:

    Fichero sources.list para Debian Jessie

    Fichero sources.list para Debian Jessie

    Una vez sustituido correctamente tendría que verse así:

    Fichero sources.list para Debian Stretch

    Fichero sources.list para Debian Stretch

  4. Una vez modificado nuestro sources.list actualizamos de nuevo todo el software ahora ya desde los repos de stretch con apt-get update && apt-get upgrade
  5. Lanzamos actualización de la distro con apt-get dist-upgrade
  6. Reiniciamos con reboot
  7. Comprobamos versión de nuevo con lsb_release -d:

Finalmente tendremos que comprobar que cada uno de los componentes y software que tuviéramos instalado funciona correctamente, desde aplicaciones de escritorio, scripts, firewall, servidores web, etc… Sólo una vez que hayamos verificado que todo funciona sin problemas, daremos por concluido realmente el proceso de actualización 😉