Hola Fronters 👋
Si trabajas con Linux, tarde o temprano vas a necesitar instalar, actualizar o eliminar software. Ahí es donde entran los gestores de paquetes, esas herramientas que hacen que mantener un sistema operativo basado en Linux sea mucho más sencillo que compilar todo desde cero (aunque de eso también hablaremos).
En esta primera entrega de nuestra serie sobre administración de paquetería, nos enfocamos en la familia Debian y derivados: Debian, Ubuntu, Linux Mint, Pop!_OS, Kali Linux y cualquier distro basada en .deb.
Prepárate para dominar APT, dpkg, apt-cache, repositorios PPAs y hasta compilación desde fuente. ¡Vamos allá!
¿Qué es un gestor de paquetes?
Un gestor de paquetes es un conjunto de herramientas que automatizan la instalación, actualización, configuración y eliminación de software. Resuelve dependencias, descarga los archivos necesarios y se asegura de que todo quede correctamente integrado en tu sistema.
En el mundo Debian tenemos dos niveles:
- dpkg — el nivel bajo, maneja archivos
.debindividuales - APT (Advanced Package Tool) — el nivel alto, resuelve dependencias y trabaja con repositorios
APT: el rey de los gestores en Debian
APT es la herramienta principal para gestionar paquetes en Debian y derivados. Aunque mucha gente usa apt y apt-get indistintamente, hay diferencias importantes.
apt vs apt-get
Históricamente, apt-get era el comando original. Con el tiempo apareció apt como una versión más amigable, con barras de progreso y colores. apt combina lo mejor de apt-get y apt-cache en un solo comando. Sin embargo, apt-get sigue siendo más usado en scripts por su estabilidad y output predecible.
Comandos esenciales de APT
Actualizar la lista de paquetes
Lo primero que debes hacer antes de cualquier instalación. Esto descarga la lista más reciente de paquetes disponibles desde los repositorios configurados.
sudo apt update
Actualizar todos los paquetes del sistema
sudo apt upgrade
Si quieres una actualización más profunda que también maneje cambios de dependencias:
sudo apt full-upgrade
Instalar paquetes
sudo apt install nginx
sudo apt install nginx php-fpm mysql-server # varios paquetes
Eliminar paquetes
sudo apt remove nginx # elimina el paquete, deja config
sudo apt purge nginx # elimina todo, incluida configuración
sudo apt autoremove # elimina dependencias huerfanas
Buscar paquetes
apt search servidor web
apt show nginx
Comandos equivalentes con apt-get
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx
sudo apt-get remove nginx
sudo apt-get purge nginx
sudo apt-get autoremove
sudo apt-get dist-upgrade
Nota: apt search y apt show en apt-get no existen directamente; para eso usamos apt-cache.
apt-cache: el buscador avanzado
Antes de que apt incorporara búsquedas, apt-cache era la herramienta para consultar la base de datos de paquetes.
apt-cache search nginx
apt-cache show nginx
apt-cache depends nginx
apt-cache policy nginx # muestra versiones disponibles e instalada
dpkg: el gestor de bajo nivel
dpkg trabaja directamente con archivos .deb. No resuelve dependencias automáticamente, pero te da control quirúrgico sobre cada paquete.
# Instalar un .deb descargado manualmente
sudo dpkg -i paquete.deb
# Eliminar un paquete
sudo dpkg -r nombre-paquete
sudo dpkg -P nombre-paquete # purge
# Listar todos los paquetes instalados
dpkg -l
# Listar archivos instalados por un paquete
dpkg -L nginx
# Averiguar qué paquete instaló un archivo
dpkg -S /etc/nginx/nginx.conf
# Verificar integridad de paquetes instalados
dpkg --verify
Si dpkg -i falla por dependencias faltantes, puedes arreglarlo con:
sudo apt install -f
El archivo sources.list
APT se configura mediante el archivo /etc/apt/sources.list y los archivos dentro de /etc/apt/sources.list.d/. Cada línea define un repositorio:
deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
Los componentes son:
- main: software oficial soportado por Canonical
- universe: software mantenido por la comunidad
- restricted: drivers propietarios
- multiverse: software con posibles problemas legales o de licencia
PPA: Personal Package Archives
Los PPAs son repositorios alojados en Launchpad que permiten a desarrolladores distribuir versiones más recientes de software. Muy comunes en Ubuntu.
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12
Los PPAs se agregan como archivos individuales en /etc/apt/sources.list.d/. Puedes verlos:
ls /etc/apt/sources.list.d/
Gestión de claves GPG (apt-key)
Tradicionalmente, las claves de repositorios se gestionaban con apt-key. Aunque este comando está obsoleto en versiones recientes de Debian y Ubuntu, muchos tutoriales antiguos aún lo referencian:
# Método antiguo (obsoleto)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF12
# Método moderno
sudo cp key.gpg /etc/apt/trusted.gpg.d/
# o
sudo gpg --dearmor --output /etc/apt/trusted.gpg.d/repo.gpg key.gpg
debconf: configuración de paquetes
Al instalar ciertos paquetes, se lanzan pantallas interactivas de configuración (como la contraseña de MySQL). debconf es el sistema que maneja esto. Puedes preconfigurar respuestas para instalaciones automatizadas:
sudo debconf-show mysql-server
echo "mysql-server mysql-server/root_password password MiClave" | sudo debconf-set-selections
Compilar desde fuente con checkinstall
A veces no hay paquete para lo que necesitas. En ese caso, puedes compilar desde el código fuente. En lugar de usar make install (que ensucia el sistema), usa checkinstall para generar un paquete .deb limpio:
# Instalar dependencias de compilación
sudo apt install build-essential checkinstall
# Compilación típica
wget https://ejemplo.com/software.tar.gz
tar -xzf software.tar.gz
cd software
./configure
make
sudo checkinstall
# Esto genera un .deb y lo instala. Después puedes eliminarlo con:
sudo dpkg -r software
Con checkinstall, el paquete queda registrado en la base de datos de dpkg, así que puedes desinstalarlo limpiamente cuando quieras.
Buenas prácticas
- Siempre ejecuta
sudo apt updateantes desudo apt upgrade - Usa
apt purgeen lugar deapt removesi no piensas reutilizar la configuración - Ejecuta
sudo apt autoremoveperiódicamente para limpiar dependencias huérfanas - En scripts, prefiere
apt-getsobreaptpor su output predecible - Evita
apt-keyen sistemas modernos; usa archivos.gpgen/etc/apt/trusted.gpg.d/
Conclusión
Dominar APT y dpkg es fundamental para cualquier administrador de sistemas Linux. Con estas herramientas puedes gestionar cualquier distribución basada en Debian con confianza y eficiencia.
En el próximo artículo de la serie, exploraremos la administración de paquetes en RHEL y derivados con YUM, DNF y RPM. ¡No te lo pierdas!
Nos leemos en el próximo post. 🐧
📊 Infografía: APT y dpkg (Debian/Ubuntu)
Descarga nuestra infografía resumen con los comandos principales:
📥 Puedes descargar la infografía aquí
🔗 Infografía comparativa general — Descarga la comparativa de todos los gestores de paquetes.
