Debian emplea el formato de paquete deniominado .deb, y para gestionar su sistema de paquetes dispone de varias herramientas:
El programa de más bajo nivel se denomina dpkg-deb y se emplea para manipular directamente los paquetes en formato .deb. Este programa no suele ser utilizado por los usuarios directamente.
Un peldaño por encima tenemos el programa dpkg, que es una herramienta de nivel intermedio que permite instalar, compilar, eliminar o gestionar los paquetes de Debian, manteniendo una base de datos de paquetes disponibles y el estado de los mismos.
APT (Advanced Package Tool), es un sistema de gestión de paquetes de software; se desarrolló en el proyecto Debian empleando paquetes en formato .deb pero es bastante independiente del formato de archivos, lo que ha permitido que existan versiones del sistema para paquetes en formato .rpm. El sistema incluye herramientas para gestionar una base de datos de paquetes que nos permite obtenerlos e instalarlos, detectando y solucionando problemas de dependencias (seleccionando paquetes que nos hagan falta) y conflictos entre paquetes (eliminando los problemáticos).
El front-end tradicional para la gestión de paquetes en Debian es el programa dselect, que es un interfaz de usuario que permite actualizar las listas de paquetes, ver el estado de los paquetes disponibles e instalados, alterar las selecciones de paquetes gestionando las dependencias e instalar, actualilzar o eliminar los paquetes. Antiguamente se empleaban varios métodos distintos para obtener las listas de paquetes disponibles y descargarlos, pero últimamente sólo se emplea el proporcionado por apt.
A continuación damos una lista de ejemplos de uso, para más información se recomienda leer la página de manual dpkg(8):
Muestra las opciones del programa.
Muestra los ficheros que contiene el paquete.
Imprime el fichero de control y otros datos del paquete.
Instala el paquete especificado, incluyendo el desempaquetado y la configuración, en el disco duro.
Desempaqueta un archivo .deb en el disco y lo deja sin configurar.
Configura un paquete previamente desempaquetado.
Configura todos los paquetes previamente desempaquetados. Suele ser útil cuando herramientas de más alto nivel fallan y no terminan de configurar paquetes por errores no relacionados entre sí.
Lista los ficheros que contiene un paquete ya instalado.
Borra un paquete, pero deja los ficheros de configuración que tuviera.
Borra un paquete eliminando todos sus ficheros de configuración.
Muestra el estado de un paquete.
Muestra los paquetes que contienen ficheros que coinciden con la expresión regular.
Hay que indicar que para emplear los paquetes con dpkg es preciso tenerlos en el disco, ya que el programa trabaja con el fichero que contiene el paquete o con paquetes ya instalados.
Para utilizar APT es necesario indicarle al sistema donde tiene que buscar los recursos; esto se hace en el fichero /etc/apt/sources.list.
Cada línea índica de donde obtener la lista de paquetes binarios o ficheros fuente disponibles. El formato de las entradas es el siguiente:
deb uri distribución [componente1] [componente2] [...]
El el primer elemento de la línea puede ser deb (para paquetes binarios) o deb-src (si nos referimos a ficheros fuente). El segundo nos indica la dirección del directorio base de una distribución tipo Debian y acepta cuatro tipos de URI: file, cdrom, http y ftp. El tercer parámetro nos indica la distribución que vamos a emplear (en nuestro caso emplearemos woody o stable) y los siguientes parámetros indícan secciones de la distribución (generalmente main, contrib y non-free, aunque puede haber otras).
Para interactuar con APT se suelen emplear dos programas, apt-get y apt-cache. El primero es el cliente de línea de comandos del sistema y el segundo es el que se emplea para manipular la cache de paquetes.
A continuación presentamos ejemplos de uso de ambos programas, explicando lo qué hacen, como siempre recomendamos la lectura de las páginas de manual de apt-get(8) y apt-cache(8) para el que desee más información.
Uso de apt-get:
Muestra un resumen del uso del programa.
Descarga el paquete <paquete> y todas sus dependencias, instalando o actualizando los paquetes descargados.
Elimina el paquete <paquete> y los paquetes que dependan de él. Si se emplea la opción --purge se eliminan además los ficheros de configuración del paquete.
Actualiza la lista de paquetes desde los origenes definidos en el fichero /etc/apt/sources.list. Se debe ejecutar siempre que queramos instalar o actualizar algo o cuando cambiemos la configuración.
Actualiza todos los paquetes instalados a las versiones más nuevas disponibles, sin instalar paquetes nuevos ni eliminar los antiguos. Si la actualización de un paquete requiere instalar paquetes nuevos dejamos ese paquete no se actualiza. La opción -u nos mostrará los paquetes que se van a actualizar.
Similar a lo anterior, excepto que instala o elimina paquetes para satisfacer las dependencias en lugar de no actualizar.
Se usa para corregir problemas de dependencias cuando una operación como install falla. Es interesante indicar que se invoca sin referirnos a ningún paquete en concreto.
Uso de apt-cache:
Muestra un resumen del uso del programa.
Busca en los paquetes y el las descripciones el patrón <patrón>.
Muestra la descripción completa del paquete <paquete>
Muestra detalles sobre el paquete y su relación con otros paquetes.
Herramienta de más alto nivel que nos permite seleccionar, instalar, borrar o dejar paquetes en espera (no actualizarlos, p. ej. por qué la nueva versión genera conflictos con otras versiones u otros programas, etc.).
Utiliza un interfaz en modo texto que nos permite ver los paquetes agrupados por categorías e importancias, acceder a descripción de los paquetes y cuando seleccionamos un paquete nos selecciona sus dependencias, nos recomienda instalar más paquetes si el que estamos instalando o sus dependencias tienen recomendaciones y nos ayuda a resolver conflictos (p. ej. nos dice que tenemos que eliminar versiones incompatibles de programas o bibliotecas).
El menú de dselect es bastante explicativo:
0. [M]étodo Escoger el método de acceso que se usará. 1. [A]ctualiza Actualizar la lista de paquetes disponibles, si se puede. 2. [S]eleccion Solicitar qué paquetes desea en el sistema. 3. [I]nstalar Instalar y actualizar los paquetes deseados. 4. [C]onfigura Configurar los paquetes que no estén configurados. 5. [D]esinstal Desinstalar los paquetes no deseados. 6. sa[L]ir Salir de dselect.
En la actualidad siempre se suele emplear como método de acceso a los paquetes el apt, de modo que esa opción no se suele emplear.
La siguiente opción se debe emplear siempre que queramos instalar o actualizar el sistema, ya que se encarga de obtener las últimas listas de paquetes disponibles.
El siguiente punto, selección, nos muestra la lista de paquetes diciéndonos cuales son nuevos, cuales tienen actualización disponible, cuales han desaparecido de la lista de paquetes, etc. Además, nos indica el estado de cada uno de ellos y nos permite ordenar la visualización de varias maneras. Usando esta vista podemos marcar los paquetes para que sean instalados, borrados, purgados o que se mantengan sin actualizar.
El punto 3, instalar, es el último realmente útil en la actualidad, ya que al usar apt, cuando le damos a esta opción se descargan, instalan, configuran y eliminan los paquetes de una vez. Empleando otros métodos de acceso si que era necesario pasar por el cuarto y quito paso.
Podemos decir que dselect es una buena herramienta para gestionar la instalación y actualización de paquetes de forma global, ya que nos permite acceder comodamente a la descripción de los mismos, conocer rápidamente su estado y es muy útil a la hora de resolver conflictos. Por todo ello recomendamos a todo aquel que quiera trabajar seriamente con debian que aprenda a utilizar este programa o alguno equivalente (como por ejemplo synaptic, que es similar aunque necesita X).
En principio sólo la distribución estable (woody) tiene soporte oficial en lo relativo a las actualizaciones de seguridad.
Cada vez que aparece un error de seguridad y se generan paquetes corregidos se anuncian en la lista debian-security-announce (hay un archivo de mensajes disponible en http://lists.debian.org/debian-security-announce/) y se dejan en un almacén específico de actualizaciones de seguridad preparado para funcionar con apt.
Es recomendable incluirlo siempre en nuestra lista de origenes de paquetes añadiendo la siguiente línea en el fichero /etc/apt/sources.list:
deb http://security.debian.org/ woody/updates main contrib non-free
Cada vez que aparezcan paquetes en este repositorio deberemos actualizar las listas de paquetes e instalar (siempre que se trate de programas que usemos, claro).