Esta semana me tomé el tiempo de actualizar mi Slackware 14.1 a la última versión estable: 14.2.

Este sistema operativo fue instalado y está funcionando desde febrero de 2014 (cuando adquirí mi portátil):

09:15 root@vaio emi # mount | grep " / "
/dev/sda5 on / type ext4 (rw)
09:15 root@vaio emi # tune2fs -l /dev/sda5 | grep created
Filesystem created:       Fri Feb  7 15:47:35 2014

En este artículo voy a demostrar el procedimiento de actualización (upgrade) de Slackware a la versión 14.2, y compartir mi (exitosa) experiencia.

Antes de comenzar es recomendable contar con una buena copa de vino, balón de cerveza, o al menos un té o café, para hacer más llevadero el asunto.

El procedimiento de actualización puede parecer riesgoso y complejo, pero en realidad es muy simple: se debe montar el DVD de Slackware 14.2 e instalr los paquetes que contiene. Luego es posible ejecutar slackpkg update && slackpkg upgrade-all para traer las últimas versiones de paquetes en los repositorios. Claro que, al realizar la actualización a Slackware 14.2 en un sistema en funcionamiento, se debe pasar a runlevel 1 (single user mode).

Las tareas documentadas en este artículo están tomadas directamente de la guía de migración de 14.2 desde 14.1 escrita y publicada por el mismo Volkerding.

El primer paso consiste en descargar el DVD de instalación:

http://mirrors.slackware.com/slackware/slackware-iso/slackware-14.2-iso/slackware-14.2-install-dvd.iso

También (mejor) es posible descargar el DVD vía torrent

Una vez descargado, crear un directorio donde montarlo:

# mkdir /slackware142

Como mencionaba anteriormente, la instalación debe realizarse en single user mode:

# init 1

La primera tarea debe ser montar los filesystems necesarios y montar el DVD en el directorio creado anteriormente:

# mount -a
# mount /vault/torrent/slackware64-14.2-install-dvd.iso /slackware142/

Luego comienza el proceso de actualización en sí.

Actualizar la librería glibc y las utilidades y herramientas del sistema (respetar el orden):

# upgradepkg /slackware142/slackware64/a/glibc-solibs-*.txz
# upgradepkg /slackware142/slackware64/a/pkgtools*.txz
# upgradepkg /slackware142/slackware64/a/tar*.txz
# upgradepkg /slackware142/slackware64/a/xz*.txz
# upgradepkg /slackware142/slackware64/a/findutils*.txz

Luego, actualizar el resto del sistema y los nuevos paquetes:

# upgradepkg --install-new /slackware142/slackware64/*/*.t?z

El siguiente paso consiste en remover paquetes obsoletos (paquetes de la versión 14.1 que ya no son soportados en la versión 14.2). Como son muchos, es más práctico crear un script:

# nano remove

Con el siguiente contenido:

#!/bin/sh

removepkg ConsoleKit apmd bluez-hcidump cxxlibs foomatic-filters \
  gnome-icon-theme imlib kdeadmin kdenetwork kdesdk kdetoys kwallet \
  lesstif libelf libjpeg libxfcegui4 networkmanagement obex-data-server \
  obexfs open-cobol oxygen-gtk3 phonon-mplayer phonon-xine pil portmap \
  procps qca-cyrus-sasl qca-gnupg qca-ossl udev xchat xf86-input-aiptek \
  xf86-video-modesetting xfce4-mixer xfce4-volumed xfwm4-themes

Ejecutar el script para eliminar los paquetes obsoletos:

# chmod +x remove 
# ./remove 

Luego sigue la parte más tediosa de la actualización: reemplazar los archivos de configuración. Tal como sucede en toda distribución GNU/Linux, este es un trabajo que debe realizarse de forma manual. Lo mejor para un sistema de escritorio es reemplazar todos los archivos de configuración por los nuevos, y luego ajustar uno a uno según sea necesario (revisando las configuraciones personalizadas en los viejos archivos de configuración).

Ya que se debe guardar una copia de respaldo de todos los archivos de configuración actuales para luego instalar los nuevos (con extensión .new), conviene utilizar otro script:

# nano config
#!/bin/sh

cd /etc
find . -name "*.new" | while read configfile ; do
  if [ ! "$configfile" = "./rc.d/rc.inet1.conf.new" \
    -a ! "$configfile" = "./rc.d/rc.local.new" \
    -a ! "$configfile" = "./group.new" \
    -a ! "$configfile" = "./passwd.new" \
    -a ! "$configfile" = "./shadow.new" ]; then
    cp -a $(echo $configfile | rev | cut -f 2- -d . | rev) \
      $(echo $configfile | rev | cut -f 2- -d . | rev).bak 2> /dev/null
    mv $configfile $(echo $configfile | rev | cut -f 2- -d . | rev)
  fi
done

Ejecutar el script para instalar los nuevos archivos de configuración:

# chmod +x config 
# ./config 

Este script deja los viejos archivos de configuración como copia de respaldo, con extensión .bak, por ejemplo:

13:39 root@vaio emi # ll /etc/slackpkg/
total 68K
-rw-r--r-- 1 root root  953 Dec 15  2015 blacklist
-rw-r--r-- 1 root root  956 Mar 31  2011 blacklist.bak
-rw-r--r-- 1 root root  23K Sep  7 08:03 mirrors
-rw-r--r-- 1 root root  23K Feb  8  2014 mirrors.bak
-rw-r--r-- 1 root root 5.8K May 22  2013 slackpkg.conf
drwxr-xr-x 2 root root 4.0K Jun 14 22:26 templates

Por último, y este paso es indispensable antes de reiniciar el sistema, resta generar la imagen initrd y revisar la configuración del bootloader LILO:

# /usr/share/mkinitrd/mkinitrd_command_generator.sh -k 4.4.14 | bash
# less /etc/lilo.conf
# ls -l /boot/

Habiendo verificado que la configuración de LILO apunte a un kernel válido (o a un link simbólico válido), reinstalar LILO:

# lilo

En este punto es posible reiniciar el sistema.

# reboot

Tareas post-actualización

13:39 root@vaio emi # cat /etc/slackware-version 
Slackware 14.2

Habiendo reemplazado todos los archivos de configuración, será necesario recorre uno a uno para determinar si es necesario realizar modificaciones en los archivos de configuración nuevos (personalizar el sistema).

Actualizar el sistema

El upgrade a Slackware 14.2 se hizo a partir de los paquetes en el DVD de instalación, por lo que una vez reiniciado el sistema es conveniente actualizar a las últimas versiones disponibles en los repositorios de Slackware.

Seleccionar un mirror (descomentar la línea correspondiente):

# nano /etc/slackpkg/mirrors

Luego actualizar el sistema:

# slackpkg update &&slackpkg upgrade-all

Driver de video AMD Radeon HD

Este sistema en particular cuenta con una tarjeta de video AMD Radeon HD 7650M. Así que la primer tarea de post-actualización (en mi caso) fue intentar reinstalar el driver de video propietario de AMD. Lamentablemente éste no funciona a partir del kernel Linux 4.2 (Slackware 14.2 utiliza un kernel de la rama estable 4.4). Como siempre, el soporte de AMD para Linux es pésimo, y hasta el momento no logré hacerlo compilar. Si más adelante lo consigo, publicaré un artículo al respecto.

Por ende, decidí utilizar el driver comunitario radeon. Su configuración es extremadamente simple.

Editar el archivo de configuración del servidor X.org:

# nano /etc/X11/xorg.conf

Dentro de la sección "Device" cambiar la opción "Driver" a "radeon":

        Driver      "radeon"

Luego examinar los archivos en los siguientes directorios:

/etc/modprobe.d/
/lib/modprobe.d/

Asegurarse de que el módulo "radeon" no esté deshabilitado (blacklist).

Es posible buscar con grep:

# grep -R "radeon" /etc/modprobe.d/*
# grep -R "radeon" /lib/modprobe.d/*

VirtualBox

Si se utilizan máquinas virtuales VirtualBox, será necesario reinstalar VirtualBox, como cada vez que se actualiza el kernel Linux.

Akonadi

Opcionalmente es posible deshabilitar el bendito servidor "akonadi", ya que nadie sabe para qué sirve (?). Editar el archivo de configuración que se encuentra en el $HOME del usuario actual:

$ nano ~/.config/akonadi/akonadiserverrc

Setear la variable "StartServer" en falso:

StartServer=false

locale

Slackware por defecto utiliza un locale con conjunto de caracteres ISO. Si anteriormente se utilizaba UTF-8 (más recomendable), es necesario cambiar la configuración:

# nano /etc/profile.d/lang.sh

Para utilizar el idioma inglés, pero con conjunto de caracteres UTF-8, exportar la variable LANG de la siguiente forma:

export LANG=en_US.UTF-8

Configuración de teclado de KDM

Configurar la distribución de teclado para KDM editando el archivo nano /usr/share/config/kdm/Xsetup.

Redes WIFI

Para que NetworkManager no solicite la clave de la red WIFI cada vez que inicia, es necesario habilitar la configuración "All users may connect to this network" dentro de la configuración general ("General configuration") de la conexión.

Conclusiones

Como notarán, la actualización no es nada del otro mundo, simple y fácil. Excepto por los mierdas de AMD y su puto driver fglrx.

Por otro lado, aunque requiere bastante intervención manual, no demora demasiado tiempo (menos de una hora para llegar al punto de reinicio).

Tal como se observa en la imagen, Slackware 14.2 viene con un kernel Linux de la última rama estable 4.4, KDE 4.14.21 y Firefox ESR 45.3.0.

Referencias

Slackware 14.2 Release Announcement

Slackware 14.2 Release Notes

Slackware 14.1 to 14.2 Upgrade HOWTO


Tal vez pueda interesarte


Compartí este artículo