Capítulo 1. General

Tabla de contenidos

1.1. Anatomía del sistema de paquetes

El paquete APT contiene a día de hoy dos secciones, el método dselect y la interfaz de usuario para la línea de órdenes apt-get. Ambos ofrecen una manera de instalar y desinstalar paquetes, así como descargar paquetes nuevos de Internet.

El sistema de empaquetado de Debian tiene una gran cantidad de información asociada a cada paquete para asegurar una integración sencilla y limpia en el sistema. La característica más importante es el sistema de dependencias.

El sistema de dependencias permite el uso de elementos compartidos en el sistema por programas individuales, tales como bibliotecas. Ésto simplifica ubicar porciones poco usadas de programas en distintos paquetes para así reducir el número de cosas que el usuario medio tiene que instalar. También permite elegir el agente de transporte del correo electrónico, el servidor de X y demás.

El primer paso para entender el sistema de dependencias es familiarizarse con el concepto de dependencia simple. El significado de una dependencia simple es que un paquete requiere que otro también esté instalado para poder funcionar correctamente.

Por ejemplo, mailcrypt es una extensión de emacs que asiste en el cifrado de correo con GPG. Sin GPG, mailcrypt es inservible, y por ello mailcrypt tiene una dependencia simple con GPG. Como también es una extensión de emacs tiene una dependencia simple con emacs, ya que sin él mailcrypt es inservible.

Otra importante dependencia que debe entender es la dependencia de conflicto. Esto se produce cuando se instala un paquete junto con otro de modo que la combinación los hace inservibles, pudiendo causar daños en el sistema. Como ejemplo, suponga un agente de transporte de correo electrónico como sendmail, exim o qmail. Es imposible tener dos agentes de transporte de correo instalados ya que ambos necesitan una conexión con la red para recibir correo. El intento de instalar dos puede dañar gravemente el sistema, y por ello todos los agentes de transporte de correo tienen una dependencia de conflicto con todos los demás.

Para complicarlo todo, cabe la posibilidad de que un paquete pretenda ser otro. En muchos aspectos, exim y sendmail son idénticos; ambos envían correo y entienden una misma interfaz. Por ello, el sistema de paquetes tiene una forma de hacer que ambos declaren ser agentes de transporte de correo («mail-transport-agent»). Así, exim y sendmail declaran que proporcionan un agente de transporte de correo y los paquetes que dependen de tales agentes dependerán de «mail-transport-agent». Esto puede añadir confusión al intentar arreglar paquetes manualmente.

Puede que en cualquier momento una dependencia simple se satisfaga por paquetes ya instalados, o que la dependencia no esté satisfecha. APT intenta asistir en la resolución de problemas de dependencias mediante un número de algoritmos automáticos que ayudan en la selección de paquetes a instalar.