Actualizaciones

Slackware Linux incorpora a slackpkg, un programa escrito en Bash que se encarga principalmente de:

  • Descargar una lista de actualizaciones disponibles de paquetes para la versión de Slackware Linux en uso.
  • Determinar las actualizaciones de paquetes y descargarlas.
  • Actualizar los paquetes oficiales actualmente instalados en el sistema operativo
  • Instalar o reinstalar paquetes oficiales.

Para determinar la versión de Slackware Linux en uso se puede ver el contenido del archivo /etc/slackware-version:

root@servidor:~# cat /etc/slackware-version 
Slackware 14.2

Para determinar la arquitectura (o tipo de procesador) de la computadora se puede ejecutar el comando lscpu:

root@servidor:~# lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
Vendor ID:             GenuineIntel
CPU family:            6
...
Model name:            Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
...
Virtualization:        VT-x
...

En base a la versión de Slackware Linux uno podrá encontrar el archivo ChangeLog.txt en donde se anuncian las actualizaciones así como el porque de las mismas: http://ftp.osuosl.org/pub/slackware/slackware64-14.2/ChangeLog.txt

slackpkg

En ocasiones uno puede encontrarse en una Red de Área Local que impida el uso de un programa que no sea un navegador web para la descarga de archivos, tal puede ser el caso de ciertas universidades, empresas o edificios gubernamentales y progamas como wget o curl. Una posible solución sería agregar la opción -U firefox a la variable WGETFLAGS definida en el archivo de configuración de slackpkg: /etc/slackpkg/slackpkg.conf.

En cuanto a las actualizaciones se procede a realizar lo siguiente para configurar a slackpkg:

  1. Accede a /etc/slackpkg, el directorio de archivos de configuración de slackpkg:

     root@servidor:~# cd /etc/slackpkg
     root@servidor:/etc/slackpkg# ls -1
     blacklist
     mirrors
     slackpkg.conf
     templates/
    
  2. Selecciona un mirror (o servidor espejo) en el archivo mirrors a partir de la versión de Slackware Linux en uso.

     root@servidor:/etc/slackpkg# mv mirrors mirrors.dist
     root@servidor:/etc/slackpkg# ls -1
     blacklist
     mirrors.dist
     slackpkg.conf
     templates/
     root@servidor:/etc/slackpkg# grep osuosl.*14.2 mirrors.dist > mirrors
     root@servidor:/etc/slackpkg# cat mirrors
     # ftp://ftp.osuosl.org/.2/slackware/slackware64-14.2/
     # http://ftp.osuosl.org/.2/slackware/slackware64-14.2/
    

    Se ha seleccionado el mirror http://ftp.osuosl.org/.2/slackware/slackware64-14.2/ en base a la versión de Slackware Linux y la arquitectura de la computadora en uso. Edita el archivo mirrors para reflejar lo anterior:

     root@servidor:/etc/slackpkg# cat mirrors
     http://ftp.osuosl.org/.2/slackware/slackware64-14.2/
    
  3. Edita el archivo slackpkg.conf (archivo de configuración de slackpkg), haciendo previamente un respaldo del mismo:

     root@servidor:/etc/slackpkg# cp slackpkg.conf slackpkg.conf.dist
    

    Modifica la línea donde se define a POSTINST (línea 100 aprox.), de on cambialo a off.

     POSTINST=off
    
  4. Descarga la llave de cifrado-firma (GPG-KEY) de Slackware Linux:

     root@servidor:/etc/slackpkg# slackpkg update gpg
                 Downloading http://ftp.osuosl.org/.2/slackware/slackware64-14.2/GPG-KEY...
     --2016-08-18 01:41:04--  http://ftp.osuosl.org/.2/slackware/slackware64-14.2/GPG-KEY
     Resolving ftp.osuosl.org (ftp.osuosl.org)... 64.50.233.100, 64.50.236.52, 140.211.166.134
     Connecting to ftp.osuosl.org (ftp.osuosl.org)|64.50.233.100|:80... connected.
     HTTP request sent, awaiting response... 200 OK
     Length: 1572 (1.5K)
     Saving to: ‘/tmp/slackpkg.Zqaot6/gpgkey’
     /tmp/slackpkg.Zqaot6/gpgke 100%[=====================================>]   1.54K  --.-KB/s    in 0s      
     2016-08-18 01:41:04 (98.1 MB/s) - ‘/tmp/slackpkg.Zqaot6/gpgkey’ saved [1572/1572]
                 Slackware Linux Project's GPG key added
    

    La llave de cifrado-firma de Slackware Linux es una forma de verificar que el paquete o las actualizaciones descargadas sean realmente creadas por Patrick Volkerding y evitar problema alguno de suplantación (instalar paquetes que comprometan el sistema operativo).

    OBSERVACIÓN: la llave de cifrado-firma de Slackware Linux ha sido descargado desde el mirror indicado en el archivo /etc/slackpkg/mirrors editado en el paso 2.

Es importante llevar a cabo lo siguiente si se está haciendo uso de una memoria USB para iniciar a Slackware Linux. Se impedirá que slackpkg actualice al kernel Linux mediante el archivo blacklist.

Edita el archivo blacklist y descomenta (borra el carácter # al inicio) las líneas que contengan a kernel-, quedando de la siguiente forma:

root@servidor:/etc/slackpkg# grep kernel- blacklist 
kernel-firmware
kernel-generic
kernel-generic-smp
kernel-headers
kernel-huge
kernel-huge-smp
kernel-modules
kernel-modules-smp
kernel-source

Los anteriores pasos, una vez llevados a cabo con exito, son realizados una sola vez.

Los siguientes pasos son para realizar la actualización propia del sistema operativo:

  1. Descarga la lista de actualizaciones disponibles:

     root@servidor:/etc/slackpkg# slackpkg update
     Updating the package lists...
     ...
                 Downloading http://ftp.osuosl.org/.2/slackware/slackware64-14.2/ChangeLog.txt...
     --2016-08-18 01:41:37--  http://ftp.osuosl.org/.2/slackware/slackware64-14.2/ChangeLog.txt
     Resolving ftp.osuosl.org (ftp.osuosl.org)... 140.211.166.134, 64.50.236.52, 64.50.233.100
     Connecting to ftp.osuosl.org (ftp.osuosl.org)|140.211.166.134|:80... connected.
     HTTP request sent, awaiting response... 200 OK
     Length: 347396 (339K) [text/plain]
     Saving to: ‘/tmp/slackpkg.NLwbHG/ChangeLog.txt’
     /tmp/slackpkg.NLwbHG/Chang 100%[=====================================>] 339.25K   368KB/s    in 0.9s    
     2016-08-18 01:41:38 (368 KB/s) - ‘/tmp/slackpkg.NLwbHG/ChangeLog.txt’ saved [347396/347396]
     ...
     ...
     ...
     ...
     ...
                 Downloading http://ftp.osuosl.org/.2/slackware/slackware64-14.2/testing/PACKAGES.TXT...
     --2016-08-18 01:41:59--  http://ftp.osuosl.org/.2/slackware/slackware64-14.2/testing/PACKAGES.TXT
     Resolving ftp.osuosl.org (ftp.osuosl.org)... 64.50.233.100, 140.211.166.134, 64.50.236.52
     Connecting to ftp.osuosl.org (ftp.osuosl.org)|64.50.233.100|:80... connected.
     HTTP request sent, awaiting response... 200 OK
     Length: 1975 (1.9K) [text/plain]
     Saving to: ‘/tmp/slackpkg.NLwbHG/testing-PACKAGES.TXT’
     /tmp/slackpkg.NLwbHG/testi 100%[=====================================>]   1.93K  --.-KB/s    in 0s      
     2016-08-18 01:41:59 (247 MB/s) - ‘/tmp/slackpkg.NLwbHG/testing-PACKAGES.TXT’ saved [1975/1975]
         Formatting lists to slackpkg style...
              Package List: using CHECKSUMS.md5 as source
              Package descriptions
    

    OBSERVACIÓN: de igual forma que en el paso 4 previamente realizado, la lista de actualizaciones disponibles ha sido descargado del mirror.

  2. Determina las actualizaciones disponibles para Slackware Linux con el comando slackpkg upgrade-all:

    • slackpkg ejecutado el día jueves 11 de agosto del 2016:

      images/01.png

    • slackpkg ejecutado el día miércoles 28 de septiembre del 2016:

      images/02.png

    • slackpkg ejecutado el día jueves 09 de febrero del 2017:

      images/03.png

    slackpkg mediante una ventana de confirmación te muestra las actualizaciones disponibles, selecciona la opción OK (apretando la tecla de Enter) para iniciar la descarga de las actualizaciones:

    OBSERVACIÓN: este paso puede tardar varios minutos, dependiendo de la cantidad de actualizaciones, el tamaño de los paquetes a actualizar y la velocidad de Internet con el que uno cuente.

     Package: bind-9.10.4_P2-x86_64-1_slack14.2.txz
                 Downloading http://ftp.osuosl.org/.2/slackware/slackware64-14.2/./patches/packages/bind-9.10.4_P2-x86_64-1_slack14.2.txz...
     --2016-08-18 01:46:01--  http://ftp.osuosl.org/.2/slackware/slackware64-14.2/patches/packages/bind-9.10.4_P2-x86_64-1_slack14.2.txz
     Resolving ftp.osuosl.org (ftp.osuosl.org)... 64.50.236.52, 64.50.233.100, 140.211.166.134
     Connecting to ftp.osuosl.org (ftp.osuosl.org)|64.50.236.52|:80... connected.
     HTTP request sent, awaiting response... 200 OK
     Length: 2370220 (2.3M) [application/x-troff-man]
     Saving to: ‘/var/cache/packages/./patches/packages/bind-9.10.4_P2-x86_64-1_slack14.2.txz’
     /var/cache/packages/./patc 100%[=====================================>]   2.26M   606KB/s    in 4.0s    
     ...
     ...
     ...
                 Downloading http://ftp.osuosl.org/.2/slackware/slackware64-14.2/./patches/packages/stunnel-5.35-x86_64-1_slack14.2.txz.asc...
     --2016-08-18 01:49:49--  http://ftp.osuosl.org/.2/slackware/slackware64-14.2/patches/packages/stunnel-5.35-x86_64-1_slack14.2.txz.asc
     Resolving ftp.osuosl.org (ftp.osuosl.org)... 64.50.236.52, 64.50.233.100, 140.211.166.134
     Connecting to ftp.osuosl.org (ftp.osuosl.org)|64.50.236.52|:80... connected.
     HTTP request sent, awaiting response... 200 OK
     Length: 181 [text/plain]
     Saving to: ‘/var/cache/packages/./patches/packages/stunnel-5.35-x86_64-1_slack14.2.txz.asc’
     /var/cache/packages/./patc 100%[=====================================>]     181  --.-KB/s    in 0s      
     2016-08-18 01:49:49 (3.20 MB/s) - ‘/var/cache/packages/./patches/packages/stunnel-5.35-x86_64-1_slack14.2.txz.asc’ saved [181/181]
         Package bind-9.10.4_P2-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package curl-7.50.1-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package gimp-2.8.18-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package glibc-zoneinfo-2016f-noarch-1_slack14.2.txz is already in cache - not downloading
         Package libidn-1.33-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package mozilla-firefox-45.3.0esr-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package mozilla-thunderbird-45.2.0-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package openssh-7.3p1-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package php-5.6.24-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package samba-4.4.5-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package stunnel-5.35-x86_64-1_slack14.2.txz is already in cache - not downloading
         Package bind-9.10.4_P2-x86_64-1_slack14.2.txz is already in cache - not downloading
         Upgrading bind-9.10.4_P2-x86_64-1_slack14.2...
     ...
     ...
     ...
     +==============================================================================
     | Upgrading bind-9.10.4_P1-x86_64-1 package using ./bind-9.10.4_P2-x86_64-1_slack14.2.txz
     +==============================================================================
     ...
     ...
     ...
     +==============================================================================
     | Upgrading curl-7.49.1-x86_64-1 package using ./curl-7.50.1-x86_64-1_slack14.2.txz
     +==============================================================================
     ...
     ...
     ...
     +==============================================================================
     | Upgrading stunnel-5.31-x86_64-1 package using ./stunnel-5.35-x86_64-1_slack14.2.txz
     +==============================================================================
     ...
     ...
     ...
    

Flujo de trabajo para actualizaciones

Una vez realizado los pasos en el anterior apartado se mantiene uno en un ciclo:

  1. Se descara la lista de actualizaciones disponibles.

     root@servidor:~# slackpkg update
    
  2. Se determinan las actualizaciones disponibles.

     root@servidor:~# slackpkg upgrade-all
    
  3. Se descargan las actualizaciones disponibles para su instalación, si las hay.

Con respecto al primer punto, es posible en ciertos momentos obtener lo siguiente al llevarlo a cabo:

root@servidor:~# slackpkg update
Updating the package lists...
    Downloading...
            Downloading http://ftp.osuosl.org/.2/slackware/slackware64-14.2/ChangeLog.txt...
--2016-08-18 21:39:25--  http://ftp.osuosl.org/.2/slackware/slackware64-14.2/ChangeLog.txt
Resolving ftp.osuosl.org (ftp.osuosl.org)... 64.50.233.100, 64.50.236.52, 140.211.166.134
Connecting to ftp.osuosl.org (ftp.osuosl.org)|64.50.233.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 347396 (339K) [text/plain]
Saving to: ‘/tmp/slackpkg.Q7JglF/ChangeLog.txt’
/tmp/slackpkg.Q7JglF/Ch 100%[===============================>] 339.25K   355KB/s    in 1.0s    
2016-08-18 21:39:26 (355 KB/s) - ‘/tmp/slackpkg.Q7JglF/ChangeLog.txt’ saved [347396/347396]
        No changes in ChangeLog.txt between your last update and now.
        Do you really want to download all other files (y/N)? n

Lo anterior indica que no existen actualizaciones disponibles o en otras palabras que el sistema operativo ya está actualizado, por lo que no es necesario descargarla. Se ha respondido con n ante la pregunta Do you really want to download all other files (y/N)?.

Actualizaciones en archivos de configuración

Parte de las actualizaciones de un sistema GNU/Linux implica actualizar los archivos de configuración de los programas instalados, incluyendo aquellos que permiten configurar ciertos aspectos del sistema operativo. La mayoria de estos archivos se encontrarán dentro del directorio /etc.

En Slackware Linux uno puede encontrar los nuevos archivos de configuración, creados durante la instalación de alguna actualización, con el comando find.

root@servidor:~# find /etc -iname "*.new"
/etc/ssh/sshd_config.new

El archivo /etc/ssh/sshd_config.new fue creado como parte de una actualización del paquete OpenSSH (ver imagen previa) y sustituiría al archivo /etc/ssh/sshd_config. La razón por la que no ha sustituido a /etc/ssh/sshd_config puede deberse a:

  • El administrador (usuario root) ha realizado modificaciones a /etc/ssh/sshd_config de tal forma que se respetan sus modificaciones y se crea a /etc/ssh/sshd_config.new para que el administrador verifique por su cuenta si hay necesidad que modifique su configuración de OpenSSH.
  • El archivo /etc/ssh/sshd_config no ha sido modificado por el administrador, pero el archivo /etc/ssh/sshd_config.new tiene diferencias con respecto a este, posiblemente el programa en cuestión ha incorporado nuevas opciones o carácteristicas, de tal forma que es el administrador quien decide que hacer.

En ambos casos planteados es responsabilidad del administrador el determinar que hacer:

  • Actualizar su configuración (/etc/ssh/sshd_config).
  • Borrar el archivo /etc/ssh/sshd_config.new ya que no está interesado en su contenido.

slackpkg cuenta con el párametro new-config para detectar los nuevos archivos de configuación y de forma interactiva determinar que hacer con ellos.

Ejemplo del uso de slackpkg new-config con respecto al archivo /etc/ssh/sshd_config.new:

root@servidor:~# slackpkg new-config
Searching for NEW configuration files
Some packages had new configuration files installed.
You have four choices:
        (K)eep the old files and consider .new files later
        (O)verwrite all old files with the new ones. The
           old files will be stored with the suffix .orig
        (R)emove all .new files
        (P)rompt K, O, R selection for every single file
What do you want (K/O/R/P)?
p

Se cuestiona que desea hacer uno: K (reconsiderar los nuevos archivo pasa despues), O (sobrescribir los actuales archivos de configuración con los nuevos), R (borrar los nuevos archivos) o bien P (seleccionar que hacer con los nuevos archivos uno por uno). Se ha seleccionado la opción P.

Select what you want file-by-file
/etc/ssh/sshd_config.new - (K)eep
                           (O)verwrite
                           (R)emove
                           (D)iff
                           (M)erge
                           d

Se ha detectado al archivo /etc/ssh/sshd_config.new y cuestiona que hacer con él: K (mantener intacto), O sobrescribir al actual archivo con configuración), R (borrarlo), D (obtener una diferencia de él y el archivo /etc/ssh/sshd_config) o bien M (combinar ambos archivos). Se ha seleccionado D.

--- /etc/ssh/sshd_config        2016-08-18 23:34:10.477790749 -0500
+++ /etc/ssh/sshd_config.new        2016-08-05 11:56:01.000000000 -0500
@@ -1,4 +1,4 @@
-#        $OpenBSD: sshd_config,v 1.98 2016/02/17 05:29:04 djm Exp $
+#        $OpenBSD: sshd_config,v 1.99 2016/07/11 03:19:44 tedu Exp $

 # This is the sshd server system-wide configuration file.  See
 # sshd_config(5) for more information.
@@ -34,7 +34,6 @@
 #RekeyLimit default none

 # Logging
-# obsoletes QuietMode and FascistLogging
 #SyslogFacility AUTH
 #LogLevel INFO


/etc/ssh/sshd_config.new - (K)eep
                           (O)verwrite
                           (R)emove
                           (D)iff
                           (M)erge
                           o

Muestra la diferencia enre ambos archivos a partir del uso del programa diff. Se ha seleccionado O para que sobrescriba al archivo /etc/ssh/sshd_config con el contenido de /etc/ssh/sshd_config.new.

Una vez terminado lo anterior la proxima ejecución de slackpkg new-config indica que no existe algún nuevo archivo de configuración.

root@servidor:~# slackpkg new-config
Searching for NEW configuration files
                No .new files found.

Lecturas