Repositorios

Las distribuciones (de Linux) están formadas por paquetes. Un paquete viene a ser una pieza de software que cumple una determinada funcionalidad. Así pues, un paquete puede ser un programa, una biblioteca, un conjunto de plugins... Pueden ser incluso, por ejemplo, iconos.

Una distribución puede verse como un gran LEGO. Cada paquete es una pieza del LEGO. A la hora de construir el LEGO, para colocar algunas piezas, debes haber puesto otras antes (las llamadas dependencias). Algunas piezas son claves, y forman la base para que se puedan colocar todas las demás (como por ejemplo, el kernel linux). Otras, en cambio, sólo son necesarias para piezas muy concretas. Y muchas piezas no tienen nada que ver unas con otras.

Y, al fin, llegamos al concepto de repositorio. El repositorio es un almacén de paquetes (como la caja con las piezas). Los repositorios pueden estar en internet, en un medio extraíble como un CD, en el disco duro.

Hay tanto repositorios oficiales (con todos los paquetes de la distribución, así como sus actualizaciones de seguridad y errores), como repositorios con software que la distribución de linux no puede incluir en los oficiales, como repositorios mantenidos por voluntarios (repositorios comunitarios) con las últimas versiones del software (con los que hay que tener mucho cuidado).

Y, finalmente, nos encontramos con el sistema de gestión de paquetes o gestor de paquetes. Es el encargado de gestionar la instalación, actualización y desinstalación de los paquetes de la distribución linux.

Los repositorios incluyen información sobre cada paquete (para qué sirve, qué ficheros contiene, etc) así con las dependencias de todos los paquetes, es decir, las instrucciones del LEGO. El gestor de paquetes actúa como el constructor del LEGO y utiliza dichas instrucciones para saber qué piezas debe poner antes de una concreta (es decir, resolver las dependencias de los paquetes). - ¿Qué es un repositorio? en BlogDRAKE, 2006

Tres puntos muy importantes a abordar para cualquier distribución de linux y el uso de repositorios:

  1. Solo se deberían usar repositorios de fuentes confiables o muy recomendadas por la comunidad de usuarios de dicha distribución de linux.

  2. Siempre tener en cuenta que la versión y arquitectura del procesador de la distribución de linux coincida con la versión y arquitectura del procesador para la cual esta enfocada el repositorio. Una mala combinación podría dejar inservible a la distribución de linux.

  3. Entre más repositorios sean usados mayor es la posibilidad de que exista un conflicto entre las dependencias de paquetes. Esta situación requiere de una mayor familiaridad con la distribución de linux, la gestión de paquetes y la terminología o documentación asociada a cada paquete.

Actualización del sistema operativo:

Puedes actualizar el sistema operativo con el comando zypper dist-upgrade. Ejemplos:

  • Cuando no hay actualizaciones:

     root@servidor:~ # zypper dist-upgrade
     Warning: You are about to do a distribution upgrade with all enabled repositories.
     Make sure these repositories are compatible before you continue.
     See 'man zypper' for more information about this command.
     Loading repository data...
     Reading installed packages...
     Computing distribution upgrade...
     Nothing to do.
    
  • Cuando hay actualizaciones:

     root@servidor:~ # zypper dist-upgrade
     Warning: You are about to do a distribution upgrade with all enabled repositories.
     Make sure these repositories are compatible before you continue.
     See 'man zypper' for more information about this command.
     Loading repository data...
     Reading installed packages...
     Computing distribution upgrade...
     The following 2 applications are going to be installed:
       Showfoto digiKam
     The following 28 NEW packages are going to be installed:
      AdobeICCProfiles
      digikam
      digikam-doc
      digikam-lang
      exiv2
      exiv2-lang
      gimp-help
      libQt5SerialPort5
      libQtAV1
      libQtAVWidgets1
      libSDL2-2_0-0
      libastro1
      libavdevice57
      libdigikamcore5
      libmarblewidget-qt5-27
      libopenblas_pthreads0
      libopencv-qt56_3
      libqt5-qtstyleplugins-platformtheme-gtk2
      libtbb2
      marble
      marble-data
      marble-doc
      marble-kde
      marble-lang
      openSUSE-release-ftp
      poppler-data
      showfoto
      unrar
     The following 9 packages are going to be upgraded:
      bundle-lang-gnome-en
      girepository-1_0
      kwin5
      libcairo-gobject2
      libcairo2
      libcroco-0_6-3
      libgirepository-1_0-1
      openSUSE-release
      tcl
     The following product is going to be upgraded:
       "openSUSE Tumbleweed"
     9 packages to upgrade, 28 new.
     Overall download size: 171.3 MiB. Already cached: 0 B. After the operation, additional 313.7 MiB will be used.
     Continue? [y/n/...? shows all options] (y):
    

    Se te muestra la lista de paquetes a actualizar y se te cuestiona para aceptar y continuar. Ingresa y y aprieta la tecla de Enter.

    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.

Repositorios de paquetes

Este proceso consiste en agregar nuevos repositorios de paquetes a los actualmente ya existentes en el sistema operativo por lo que se llevará a cabo una solo vez.

Como usuario root:

  1. Enlista los repositorios de paquetes:

     root@servidor:~ # zypper repos -P
     # | Alias          | Name                          | Enabled | GPG Check | Refresh | Priority
     --+----------------+-------------------------------+---------+-----------+---------+---------
     1 | repo-debug     | openSUSE-Tumbleweed-Debug     | No      | ----      | No      |   99    
     3 | repo-non-oss   | openSUSE-Tumbleweed-Non-Oss   | Yes     | (r ) Yes  | No      |   99    
     4 | repo-oss       | openSUSE-Tumbleweed-Oss       | Yes     | (r ) Yes  | No      |   99    
     6 | repo-source    | openSUSE-Tumbleweed-Source    | No      | ----      | No      |   99    
     7 | repo-update    | openSUSE-Tumbleweed-Update    | Yes     | (r ) Yes  | No      |   99
    

    Los repositorios activdados y en uso son Non-Oss, Oss y Update. Todos los repositorios mostrados hasta el momento se consideran repositorios oficiales.

  2. Agrega los siguientes repositorios para openSUSE TumbleWeed:

    Fonts / Tipos de letras / Tipografías: http://download.opensuse.org/repositories/M17N:/fonts/openSUSE_Tumbleweed/

     root@servidor:~ # zypper addrepo -n openSUSE-Tumbleweed-Fonts \
                       http://download.opensuse.org/repositories/M17N:/fonts/openSUSE_Tumbleweed/ repo-fonts
    
     Adding repository 'openSUSE-Tumbleweed-Fonts' ...........................................................[done]
     Repository 'openSUSE-Tumbleweed-Fonts' successfully added
    
     URI         : http://download.opensuse.org/repositories/M17N:/fonts/openSUSE_Tumbleweed/
     Enabled     : Yes
     GPG Check   : Yes
     Autorefresh : No
     Priority    : 99 (default priority)
    
     Repository priorities are without effect. All enabled repositories share the same priority.
    

    KDE Extra: http://download.opensuse.org/repositories/KDE:/Extra/openSUSE_Tumbleweed/

     root@servidor:~ # zypper addrepo -n openSUSE-Tumbleweed-KDE-Extra \
                           http://download.opensuse.org/repositories/KDE:/Extra/openSUSE_Tumbleweed/ repo-kde-extra 
    
     Adding repository 'openSUSE-Tumbleweed-KDE-Extra' .......................................................[done]
     Repository 'openSUSE-Tumbleweed-KDE-Extra' successfully added
     Enabled     : Yes
     GPG Check   : Yes
     Autorefresh : No
     Priority    : 99
     URI         : http://download.opensuse.org/repositories/KDE:/Extra/openSUSE_Tumbleweed/
    

    Packman: http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/

     root@servidor:~ # zypper addrepo -n openSUSE-Tumbleweed-Packman \
                           http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ repo-packman
    
     Adding repository 'openSUSE-Tumbleweed-Packman' ........................................................[done]
     Repository 'openSUSE-Tumbleweed-Packman' successfully added
     Enabled     : Yes
     GPG Check   : Yes
     Autorefresh : No
     Priority    : 99
     URI         : http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/
    
  3. Cambia la prioridad (Priority) del repositorio Packman a mayor: 98.

    Puedes llevar a cabo esto como usuario root mediante el comando yast2 repositories en modo gráfico o bien el la línea de comandos:

    root@servidor:~ # zypper modifyrepo --priority 98 repo-packman
    

    Puedes ejecutar una vez más el comando zypper repos -P para observar la lista de repositorios:

    root@servidor:~ # zypper repos -P
    

    OBSERVACIÓN: la prioridad de los repositorios va de mayor a menor a partir del 1 en adelante, siendo 99 la prioridad Default, de esta forma:

    • La prioridad 98 es mayor a la prioridad 99.
    • La prioridad 100 es menor a la prioridad 99.
  4. Actualiza los repositorios de paquetes con el comando zypper refresh:

    Por cada uno de los nuevos repositorios agregados en el paso 2 se te preguntará si quieres confiar en la llave de cifrado del repositorio, responde con a y continua apretando la tecla Enter:

    Do you want to reject the key, trust temporarily, or trust always? [r/t/a/? shows all options] (r): a
    

Puedes una vez más refrescar los repositorios de paquetes para verificar que todo esté bien:

root@servidor:~ # zypper refresh
...
All repositories have been refreshed.

Finalmente, realiza la actualización del sistema operativo.