LPIC 102.4 Uso y manejo del sistema de paquetes en Debian

Introducción:

Bien, tras el parón inesperado continuamos con el curso. Dejamos atrás ya los boot loaders y nos metemos de cabeza ya en la gestión de paquetes. Hoy estudiaremos como se gestionan los paquetes (programas) en Debian y mañana estudiaremos como se hace en RedHat. Como veréis ambos tienen un sistema de gestión de paquetes muy sencillo y potente que a mi en particular me hace que ame Linux de la forma que lo amé y lo amo. Pero antes de meternos en la gestión en general, entremos a mirarle las tripas a cada paquete:

Debian Package Management Overview

Los paquetes en Debian se llaman como tal ya que no solo contienen el programa en si, si no un paquete con más cosas, esto es el programa en si, los ficheros de configuración, la documentación y por último y muy importancia sus dependencias. Es importante comprender el concepto de dependencia. Esto es si queremos instalar el paquete frikipacket que sirve para procesar imágenes es posible que tenga dependencias. Es decir, que necesite otros paquetes sobre los que apoyarse y sobre los que funcionar correctamente, por ejemplo librerías.

Los nombres de los paquetes tienen la siguiente estructura:

  • Nombre del paquete: El nombre es siempre corto y descriptivo, si el título esta formado por varias palabras suelen estar separadas por guiones.
  • Número de versión: Esta versión va variando en cada revisión y aunque no esta fijado la estructura del versionado suele ser númerica siguiendo la siguiente metodología: major.minor.patchlevel.
  • Extensión: Esta extensión es común para todos los paquetes en debian. Es siempre .deb

Managing Debian Packages

Bien, ya sabemos que son los paquetes en debian y que tienen dentro. Ahora vamos a ver como gestionarlos. Originalmente la herramienta para hacerlo es conocida como dpkg y se encarga de la gestión de paquetes de forma independiente, trata por tanto directamente con el paquete (el fichero .deb). Pero la gracia del sistema llega con sistemas como debian que tienen repositorios y satisfacen dependencias de manera automática, pero no nos adelantemos esto lo veremos en su correspondiente apartado dentro de unas pocas líneas. También trataremos otros dos comandos dselect (algo similar en parte a apt-get) y alien que nos permite instalar paquetes no debian en nuestro sistema.

dpkg
Como veíamos antes este comando nos permite interactuar directamente con el paquete. Normalmente a no ser que queramos cacharrear no tocaremos en exceso esta herramienta y por mi experiencia siempre que podais es mejor usar apt-get. Pero hay en ocasiones en la que no nos queda otra. Por ejemplo: instalar paquetes con distinta versión a lo que tenemos en el repositorio, forzar instalaciones, instalar paquetes fuera de repositorios o arreglar dependencias rotas y es que si, a veces apt-get se rompe y cuando lo hace da muchos quebraderos de cabeza. También se usa típicamente para listar paquetes instalados. Pero la principal razón por la que le prestaremos especial atención a esto es porque en el examen lo hacen! Y es que dpkg es de lo que más cae de esta lección en el examen muy por encima de apt-get y los otros comandos.

Vamos a ver el funcionamiento y sus opciones más usadas:

  • -i la más típica, sirve para instalar el paquete que se le pasa como segundo parámetro.
  • -r o –purge para eliminar el paquete que se indica a continuación.
  • -S para buscar un paquete que contenga la cadena que le indicamos a continuación. Si en lugar de un paquete le pasamos un fichero nos indicará a que paquete corresponde dicho fichero.
  • -s nos muestra información sobre un determinado paquete que le indicamos a continuación. Si esta instalado, tamaño y demás información.
  • -l Nos muestra una lista de los paquetes instalados en el sistema. Si le indicamos una cadena después nos muestra los paquetes instalados que además tienen esa cadena. Aquí se nos muestra que versión esta instalada y tal. Esta opción sale muchisisisimo en los examenes.
  • -L Nos muestra una lista de los ficheros que usa el paquete cuyo nombre indicamos a continuación.
  • –configure ejecuta los scripts de configuración del paquete que indiquemos a continuación.
  • –unpack desempaquetará el paquete pero no lo instalará en el sistema.

apt-get

Como adelantaba apt-get es un programa que sirve para automatizar la gestión de paquetes. Recuerdo en mis primeros tiempos en linux con una vieja Slackware cuando querías instalar algo el resultado solía ser, para instalar eso necesitas esos 3 paquetes y al ir a instalar esos paquetes estos te pedían otras 3 dependencias y la cosa llegaba a volverse una auténtica locura. Locura total ya si hablamos de dependencias cruzadas, pero no hablemos de batallitas…

Una de las ventajas de apt-get es que te resuelve el mismo las dependencias y si quieres instalar un paquete y este tiene dependencias y estos a su vez otras y al final resultase que tienes que instalar 28 paquetes te informará de ello y te dirá que si los quieres instalar todos y tu lo lo habrás resuelto tan solo confirmándolo.

Para esto en lugar de trabajar directamente con los paquetes lo hace con repositorios. Estos repositorios pueden estar en un cd aunque lo más habitual hoy en día es que estos repositorios sean online y que sean mantenidos y actualizados diariamente. De esta forma otra de las ventajas añadida, diría yo LA ventaja, es que con un solo comando podemos actualizar todos los paquetes de un golpe y plumazo. La configuración de estos repositorios se encuentra en: /etc/apt/sources.list

Veamos sus opciones de uso más típicas:

  • install: instala el paquete que le indicamos a continuación.
  • remove: borra el paquete que le indicamos a continuación.
  • update: Actualiza la lista de paquetes y de versiones disponibles desde el repositorio.
  • upgrade: actualiza todos los paquetes de los cuales haya nuevas versiones disponibles.
  • dist-upgrade: Actualiza a una nueva versión de Debian (previamente debemos haber modificado el fichero del repositorio)
  • -d para que solo descargue el paquete pero no quieras instalarlo.
  • -s simula la orden pero no la realiza, sirve para ver que implicaría un upgrade por ejemplo.
  • -y le contesta si a todo, ojito con esta opción que nos la puede liar!

Si vais a administrar máquinas con debian eventualmente os daréis cuenta de que estas opciones de apt-get se quedan un poco cortas por lo que os recomiendo echarle un ojo a su página de man, pero parece ser que para el examen con esto vas que chutas 😉

dselect

dselect es poco más que una interfaz amigable y bonita para dpkg. En el libro de O’Reilly no habla mucho más de la herramienta y la verdad no le encuentro mucho sentido, no la he encontrado mucho en preguntas de examen y solo recuerdo que me salía hace años al final de la instalación de debian hoy en día ya no y llevo años sin usarla. Para mi que en la siguiente revisión de la LPI es posible que esto se vaya a tomar viento fresco…

alien

Este comando como adelantaba lo que hace es permitir instalar paquetes que no son de debian si no de redhat (rpm), stampede (slp), de Slackware o genéricos. Lo que hace Debian es generar una salida lo más parecida a Debian. Sinceramente nunca he usado la herramienta y siempre que he querido instalar algo que no estaba en los repositorios de Debian lo he instalado a mano, pero parece que ese tipo de instalaciones no se tocan en la certificación o al menos no en este examen.

Los comandos típicos parecen ser:

  • -i para instalar
  • -r para convertir el paquete a formato RPM (redhat)
  • -t para convertirlo a formato tar

Lo cierto es que no tengo del todo claro que esto aparezca demasiado en el examen, pero echadle un ojo que no esta de más.

3 comentarios en “LPIC 102.4 Uso y manejo del sistema de paquetes en Debian

  1. La primera vez que hice un apt-get (en 2004 creo) fue como WOOOOOOOOO_O genial!!

    Y cuando probé el de upgrade y me quedé sin disco duro tb fue gracioso XD

Los comentarios están cerrados.