Gestión de Paquetes Debian: apt, dpkg y aptitude en Ubuntu y Debian
Utilice herramientas para instalar, actualizar, desinstalar paquetes, obtener información como versión, contenido, dependencias, integridad y estado de instalación.
El gerenciamento de paquetes Debian en Linux es una excelente manera de distribuir, instalar y desinstalar software para las distros Debian y Ubuntu.
Un paquete en pocas palabras es un archivo que contiene la información necesaria para que el administrador de paquetes pueda instalar, mantener y eliminar los programas así como también los demás archivos necesarios de una determinada aplicación.
Una característica importante de Linux es la modularización de sus componentes y el uso intensivo de bibliotecas compartidas. Esto también se aplica a los paquetes de aplicaciones.
Es bastante común que un programador utilice bibliotecas compartidas y no las incluya en su aplicación.
Es común que al intentar instalar un determinado paquete sea necesario primero instalar otro paquete que contenga los prerrequisitos o las bibliotecas para su instalación. Cada paquete contiene la información de dependencias necesarias.
Grandes proyectos de software usan distribuir los diversos módulos de su aplicación en varios paquetes que pueden o no ser instalados de acuerdo con su uso.
La organización de una aplicación en varios paquetes permite que el administrador instale solamente aquellos que son realmente necesarios, evitando tener que instalar componentes que no serán utilizados. Siguiendo la línea de administradores de paquetes, dos grandes distribuciones Linux se destacaton.
Debian uniting las herramientas GNU, el Kernel de Linux y otros softwares libres importantes formando la distribución llamada Debian GNU/Linux. Esta distribución está hecha de un gran número de paquetes de software.
Cada paquete en la distribución contiene programas ejecutables, scripts, documentación e información de configuración. El administrador de paquetes de Debian es versátil y robusto. Ubuntu y SteamOS siguen el estándar Debian.
También la empresa estadounidense Red Hat fue una de las pioneras en el tratamiento serio de Linux. Desde el inicio es una de las principales distribuciones mundiales con gran influencia.
Creadora del RPM, el administrador de paquetes más usado actualmente en Linux, Red Hat tiene una distribución orientada al mercado de servidores. Fedora, Mandriva, SuSE, OpenSuSe, CentOS y Oracle Linux siguen el estándar RPM.
Debian está atenta a los detalles que nos permiten producir programas de alta calidad y estabilidad.
Las instalaciones pueden ser fácilmente configuradas para servir múltiples propósitos, como firewalls linux con pocos paquetes, estaciones de escritorio científicas y servidores de red de alto rendimiento.
Esta distribución es especialmente popular entre usuarios avanzados por su excelencia técnica y atención a las necesidades y expectativas de la comunidad Linux.
Debian también introdujo muchas características al sistema que ahora son rutinarias como el sistema de administración de paquetes para instalación y eliminación fácil de software y también la posibilidad de permitir la actualización del sistema sin requerir la reinstallación.
Las herramientas del administrador de paquetes le permiten al administrador de un sistema Debian el control completo de los softwares instalados, incluyendo la habilidad de instalar un simple paquete o automáticamente actualizar todo el sistema operativo.
Los paquetes también pueden ser protegidos para no ser actualizados.
Los nombres de los paquetes Debian acompañan el siguiente patrón:

- Nombre del Paquete: El nombre del paquete es una breve descripción de su contenido. Si se usa más de una palabra, se separa por guión;
- Versión del software: Cada paquete tiene un número de versión propio, que puede variar entre versión principal y correcciones aplicadas;
- Versión del paquete: Los paquetes también pueden tener versiones diferentes de distribución. La versión del paquete también puede indicar para qué plataforma fue preparado;
- Extensión .deb: Para fácil identificación de los paquetes Debian.
Ejemplos:
abiword-gtk_1.0.2+cvs.2002.06.05-1_i386.deb
abiword-plugins_1.0.2+cvs.2002.06.05-1_i386.deb
Herramientas para manipular los paquetes
dpkg
El comando dpkg es el utilitario responsable de la administración de paquetes en sistemas Debian.
Él mantiene la información de los paquetes instalados básicamente en los archivos /var/lib/dpkg/available y /var/lib/dpkg/status. Estos archivos contienen la lista de paquetes disponibles y estado, respectivamente.
Las opciones más frecuentes son:
- -E: Esta opción no reescribe un paquete ya instalado de la misma versión;
- -G: Esta opción no reescribe un paquete ya instalado, aunque sea más antiguo;
- -R: Procesa todos los paquetes encontrados en un determinado directorio de forma recursiva.
Las acciones más frecuentes son:
- -i nombredelpaquete: Instala el paquete nombredelpaquete. Este proceso involucra hacer copia de respaldo de los archivos antiguos que ya existan en el sistema, desempaquetado, instalación y configuración. Esta acción también puede ser referenciada con –install nombredelpaquete;
- -l clavebúsqueda: Lista la información de los paquetes que contengan en el nombre la misma clave de búsqueda;
- -L nombredelpaquete: Lista los archivos instalados por el paquete nombredelpaquete;
- — print-avail nombredelpaquete: Lista toda la información disponible sobre el paquete nombredelpaquete en /var/lib/dpkg/available;
- — purge nombredelpaquete: Elimina todo el paquete nombredelpaquete;
- -r nombredelpaquete: Elimina todos los archivos del paquete, menos las configuraciones;
- -s nombredelpaquete: Muestra el estado del paquete;
- -S archivo: Busca por un archivo en los paquetes instalados;
- —unpack nombredelpaquete: Desempaqueta un paquete, pero no instala;
- —configure nombredelpaquete: Configura un paquete no instalado.
Ejemplos:
Instalar un paquete usando dpkg
# dpkg -i acct_6.3.5-32_i386.deb
Eliminar un paquete usando dpkg
# dpkg —purge ace-of-penguins_1.2-3_i386.deb
El dpkg también puede ser utilizado para descubrir a qué paquete pertenece un archivo determinado:
# dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
Otra posibilidad es descubrir los paquetes instalados en el sistema a partir de una palabra clave:
# dpkg -l | grep mozilla
ii mozilla-browse 0.9.6-7 Mozilla Web Browser
El archivo /etc/dpkg/dpkg.cfg contiene las opciones predeterminadas cuando se ejecuta dpkg.
Los archivos de control del dpkg residen en el directorio /var/lib/dpkg. Dos archivos interesantes en este directorio son:
/var/lib/dpkg/available: Lista de paquetes disponibles;
/var/lib/dpkg/status: Estado de los paquetes instalados. Informa cuándo fueron instalados, removidos, etc.
Utilitario dpkg-reconfigure
Uso:
# dpkg-reconfigure [nombre del paquete]
El comando dpkg-reconfigure reconfigura un paquete ya instalado en el sistema. Tiene el mismo efecto que la reinstalación del paquete.
Ejemplo:
# dpkg-reconfigure debconf
Utilitario apt-get - la verdadera navaja suiza
El comando apt-get (Advanced Package Tool) es un gestor avanzado de paquetes.
Puede utilizar archivos locales o remotos para realizar la instalación o actualización de paquetes.
De esta manera es posible actualizar todo el sistema Debian vía ftp o http. Este gestor también mantiene información de los paquetes y sus dependencias.
Debido a su facilidad de operación, apt-get es el método preferido para manipular paquetes. Este utilitario ofrece decenas de opciones configuradas en el archivo /etc/apt/apt.conf.
El archivo /etc/apt/sources.list contiene las ubicaciones donde apt-get encontrará los paquetes, la distribución verificada (stable, testing, unstable, Woody, Sarge) y la sección que será copiada (main, non-free, contrib, non-US).
A continuación un ejemplo simple del archivo /etc/apt/sources.list con explicación de las secciones:
deb http://www.debian.org/debian stable main contrib non-free
deb http://nonus.debian.org/debian-non-US stable non-US
En el archivo /etc/apt/apt.conf podemos especificar opciones que modificarán el comportamiento del programa apt-get durante la manipulación de los paquetes.
El apt-get utiliza una lista de paquetes para verificar si los paquetes existentes en el sistema necesitan o no ser actualizados. La lista más reciente de paquetes se copia mediante el comando apt-get update.
El apt-get es muy útil, ya que el administrador no necesita copiar manualmente de Internet el paquete que desea instalar, mucho menos ocuparse de las dependencias, siempre que lo que necesite esté en los repositorios indicados en sources.list.
Las opciones más frecuentes de este utilitario son:
- -d: Descarga los archivos, pero no instala. Es útil para descargar grandes volúmenes de paquetes para su posterior instalación;
- -s: Simula la instalación de los paquetes, pero no realiza modificaciones;
- -y: Responde afirmativamente a todas las preguntas realizadas durante el proceso de instalación/desinstalación de los paquetes.
Los comandos más frecuentes son:
- dist-update: Este comando realiza la actualización automática del sistema Debian;
- install: Este comando instala un paquete determinado especificado por el nombre;
- remove: Este comando elimina un paquete determinado especificado por el nombre;
- update: Este comando genera una lista de todos los paquetes disponibles. El proceso se realiza automáticamente antes de cualquier modificación en los paquetes;
- upgrade: Este comando se utiliza para realizar una actualización segura del sistema, ya que no instala paquetes que puedan causar algún conflicto o falla en los archivos de configuración.
Ejemplos:
# apt-get install airsnort
Instala el paquete airsnort.x.y.deb. Este comando acepta instalar más de un paquete separando los nombres por espacios. Solo es necesario especificar el nombre del paquete, sin la versión (X), revisión (Y) y sufijo (.deb).
Si es necesario, apt-get instalará automáticamente las dependencias necesarias para el funcionamiento correcto de un paquete.
El apt-get puede actualizar toda su distribución de una forma inteligente y segura. Lee el listado de paquetes disponibles en el servidor remoto, verifica cuáles están instalados y sus versiones, y actualiza los paquetes antiguos.
# apt-get upgrade
La copia de los archivos puede realizarse vía ftp, http, copia local de los archivos en el disco duro o CD-ROM.
¿Quieres modo "gráfico"? Usa aptitude para instalar y remover software
El utilitario aptitude es una interfaz para facilitar el uso del APT. Muestra una lista de paquetes y permite que el usuario seleccione los paquetes para instalación o desinstalación de forma interactiva.
También funciona como un potente sistema de búsqueda de paquetes y detalles de los paquetes.
Originalmente desarrollado para Debian, también está presente en otras distribuciones, así como en algunas que usan el padrão RPM.
Utiliza la biblioteca ncurses para emulación de terminal y menús interactivos, emulando el uso de apt-get de forma más simple e intuitiva.
¡Calma! Aún hay más. Mira el comando apt-cache
El utilitario apt-cache sirve para manipular y obtener información sobre los paquetes en la caché del apt.
Debe utilizarse en conjunto con algunos comandos, a continuación:
# apt-cache add: Agrega un paquete al caché de apt;
# apt-cache gencaches: Genera el caché de apt;
# apt-cache showpkg: Muestra información sobre un paquete específico;
# apt-cache stats: Muestra algunas estadísticas;
# apt-cache check: Verifica la integridad del caché;
# apt-cache search: Busca en la lista de paquetes por una ocurrencia específica;
# apt-cache show: Muestra detalles sobre un paquete específico;
# apt-cache depends: Muestra las dependencias de software de un paquete específico;
# apt-cache pkgnames: Lista el nombre de todos los paquetes.
apt-cache puede ser utilizado para encontrar los paquetes que contienen emuladores de Atari:
# apt-cache search atari
atari800 - Atari emulator for svgalib/X/curses
stella - Atari 2600 Emulator for X windows
xmess-x - X binaries for Multi-Emulator Super System
También puede ser utilizado para conocer más sobre un paquete específico, como el emulador Stella:
# apt-cache show stella
Package: stella
Priority: extra
Section: non-free/otherosfs
Installed-Size: 830
Maintainer: Tom Lear <[email protected]>
Architecture: i386
Version: 1.1-2
Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
Size: 483430
O si simplemente desea saber cuáles son las dependencias de un paquete:
# apt-cache depends penguin-command
penguin-command
Depends: libc6
Depends: libpng2
Depends: libsdl-mixer1.1
Depends: libsdl1.1
Depends: zlib1g
Aprenda mucho más sobre Linux en nuestro curso en línea. Puede realizar la inscripción aquí. Si ya tiene una cuenta, o desea crear una, simplemente inicie sesión o cree su usuario aquí.
¿Le gustó? Comparta
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.