-
Notifications
You must be signed in to change notification settings - Fork 0
01 Package Management
- Qué es el Package Management
- Conceptos Básicos
- Tipos de Package Managers (Gestores de Paquetes)
- Formatos de Paquetes
- Operaciones Básicas
- Ejemplos Prácticos de Uso de Package Managers
- Recursos Recomendados
- Referencias
El package management, o gestión de paquetes es la tarea de instalar y dar mantenimiento al software (desinstalar, actualizar, etc.). Antiguamente, la gestión de paquetes se hacía manualmente. Uno tenía que descargar, compilar el código fuente, e integrarlo al sistema manualmente. Hoy en día, contamos con herramientas que nos facilitan la gestión de paquetes.
Las dependencias son otros paquetes de software que un programa necesita para funcionar correctamente. Por ejemplo, un reproductor de vídeo puede depender de bibliotecas de códecs de audio y vídeo. Los gestores de paquetes de alto nivel resuelven automáticamente estas dependencias, instalando todos los componentes necesarios cuando instalas un programa.
- Dependencias obligatorias: sin estas, el software no puede funcionar
- Dependencias opcionales: proporcionan características adicionales
- Dependencias de desarrollo: necesarias solo para compilar el software
Un paquete es una unidad de software empaquetada que contiene:
- el programa ejecutable
- Archivos de configuración
- Documentación
- Scripts de instalación/desinstalación
- Metadatos (versión, dependencias, descripción)
Los repositorios son servidores centralizados que almacenan miles de paquetes. Cada distribución mantiene sus propios repositorios oficiales, y también existen repositorios de terceros.
Si bien algunos proyectos de software optan por empaquetar y distribuir su propio software, la mayoría de los paquetes actuales son creados por los proveedores de distribución y terceros interesados. Los paquetes se ponen a disposición de los usuarios de una distribución en repositorios centrales que pueden contener miles de paquetes, cada uno de ellos creado y mantenido específicamente para la distribución.
Un package manager, package management system, o gestor de paquetes es un programa que permite gestionar los paquetes de un sistema, permitiendo realizar tareas tales como instalar, desinstalar, actualizar un paquete, instalar dependencias, etc.
En general, los package managers se pueden dividir en dos tipos de herramientas:
Manejan tareas tales como la instalación y desinstalación de paquetes individuales. Operan directamente con archivos de paquetes locales y no resuelven dependencias automáticamente.
Ejemplos:
-
dpkg(Debian/Ubuntu) -
rpm(Red Hat/Fedora)
Manejan tareas tales como la instalación y desinstalación de paquetes, búsqueda de metadatos, resolución automática de dependencias, y gestión de repositorios.
Ejemplos:
-
apt(Debian/Ubuntu) -
dnf/yum(Red Hat/Fedora) -
pacman(Arch Linux)
Estos paquetes se instalan y se gestionan mediante package managers tales como:
| Package manager | Distribución |
|---|---|
apt |
Debian/Ubuntu y derivadas |
pacman |
Arch Linux y derivadas |
dnf/yum |
Red Hat/Fedora y derivadas. dnf es una reescritura de yum
|
Existen herramientas adicionales que permiten a los desarrolladores (o
mantenedores de paquetes) empaquetar el software en un package file
(equivalente a los instaladores .exe, o .msi en Windows). Por lo general,
estos programas son empaquetados en un formato específico (e.g., .deb) para
una distribución (o familia) en concreto (e.g., Ubuntu/Debian).
Un package file, en esencia, es un archivo comprimido el cual contiene una serie de archivos que conforman el paquete de software. Estos archivos proporcionan información (e.g., metadatos, scripts de pre-instalación y post-instalación, el binario o script del programa) a los package managers.
Estos paquetes son los archivos que permiten a los usuarios instalar y gestionar el software mediante package managers tales como:
| Package manager | Archivo empaquetado | Distribución |
|---|---|---|
dpkg |
.deb |
Ubuntu/Debian y derivadas |
rpm |
.rpm |
Red Hat/Fedora y derivadas |
Dentro de Linux y Unix, existe una infinidad de package managers disponibles para cada uno de los diferentes sistemas. A continuación se presenta una tabla con las operaciones básicas de cada uno de los package managers más comunes:
| Acción | dpkg | rpm |
|---|---|---|
| Instalar un paquete | dpkg -i pkg.deb | rpm -i pkg.rpm |
| Desinstalar un paquete | dpkg -r pkg | rpm -e pkg |
| Actualizar un paquete | dpkg -i pkg.deb | rpm -U pkg.rpm |
| Listar paquetes instalados | dpkg -l pattern | rpm -qa pattern |
| Listar el contenido de un paquete local | dpkg -c pkg.deb | rpm -qpl pkg.rpm |
| Listar el contenido del paquete instalado | dpkg -L pkg | rpm -ql pkg |
| Verificar integridad de paquetes | dpkg -V pkg | rpm -V pkg |
| Extraer archivos sin instalar | dpkg -x pkg.deb dir/ | rpm2cpio pkg.rpm | cpio -idmv |
| Mostrar información de un paquete | dpkg -I pkg.deb | rpm -qip pkg.rpm |
| Purgar un paquete removido o instalado, incluyendo configuración | dpkg -P pkg | N/A |
| Instalar un nuevo paquete y asumir yes a todas las preguntas | dpkg -i --force-all | rpm -i --force |
Important
El comando apt es la evolución del antiguo comando apt-get y fue
introducido en Ubuntu 16.04 y Debian 8. En la mayoría de las instrucciones
puedes sustituir apt por apt-get; sin embargo, se recomienda usar apt si
tu sistema lo soporta, ya que ofrece:
- Interfaz más moderna y amigable
- Salida con colores y barras de progreso
- Combinación de funcionalidades de
apt-getyapt-cache
| Acción | APT | dnf | yum | Pacman |
|---|---|---|---|---|
| Buscar un paquete | apt search pkg | dnf search pkg | yum search pkg | pacman -Ss pkg |
| Instalar un paquete | apt install pkg | dnf install pkg | yum install pkg | pacman -S pkg |
| Desinstalar un paquete | apt remove pkg | dnf remove pkg | yum remove pkg | pacman -R pkg |
| Actualizar un paquete | apt install --only-upgrade pkg | dnf upgrade pkg | yum update pkg | pacman -S pkg |
| Actualizar la base de datos del software | apt update | dnf makecache | yum makecache | pacman -Sy |
| Actualizar todos los paquetes | apt upgrade | dnf upgrade | yum update | pacman -Syu |
| Mostrar los paquetes instalados | apt list --installed | dnf list --installed | yum list installed | pacman -Q |
| Mostrar los paquetes actualizables | apt list --upgradable | dnf check-update | yum check-update | pacman -Qu |
| Mostrar detalles sobre un paquete | apt show pkg | dnf info pkg | yum info pkg |
pacman -Si pkg (repo) pacman -Qi pkg (instalado) |
| Remover paquetes y sus dependencias | apt autoremove pkg | dnf remove pkg | yum remove pkg | pacman -Rs pkg |
| Remover paquetes y sus archivos de configuración | apt purge pkg | N/A | N/A | pacman-Rn pkg |
| Remover paquetes, dependencias y sus archivos de configuración | apt autoremove --purge pkg | N/A | N/A | pacman-Rns pkg |
| Remover dependencias que ya no son necesarias (orphaned) | apt autoremove | dnf autoremove | yum autoremove |
pacman -Qdtq | pacman -Rs ( -Qdttq para remover también dependencias opcionales) |
| Limpiar todos los cachés locales |
apt autoclean (remueve solo información obsoleta) apt clean |
dnf clean all | yum clean all |
pacman-Sc pacman -Scc |
| Alternar confirmaciones manuales | apt --yes |
dnf [-y | --assumeyes] dnf --assumeno |
yum -y |
pacman --confirm pacman --noconfirm |
# En Ubuntu/Debian
sudo apt update
sudo apt install vim
# En Fedora
sudo dnf install vim
# En Arch Linux
sudo pacman -Sy vim# En Ubuntu/Debian
apt search "web server"
apt search nginx
# En Fedora
dnf search httpd
dnf search nginx
# En Arch Linux
pacman -Ss nginx
pacman -Ss apache# En Ubuntu/Debian
sudo apt update && sudo apt upgrade
# En Fedora
sudo dnf upgrade
# En Arch Linux
sudo pacman -Syu# Archivo .deb
sudo dpkg -i package.deb
sudo apt install -f # Corregir dependencias si es necesario
# Archivo .ppm
sudo rpm -i package.rpm
# O
sudo dnf install package.rpm # Resuelve dependencias automáticamente- Arch Linux Wiki - Tablas comparativas de comandos de varios package managers
- Wikipedia - Tabla comparativa de comandos de varios package manager
-
Shotts, W. (2019). Package Management. The Linux Command Line (2nd ed., pp. 155-165). No Starch Press.
-
Arch Linux Wiki (julio 17, 2025). pacman/Rosetta. https://wiki.archlinux.org/title/Pacman/Rosetta
-
Wikipedia (agosto 16, 2025). Package manager. https://en.wikipedia.org/wiki/Package_manager
- Definición y Estructura de un Shell
- Los Diferentes Tipos de Shell
- Definición y Sintaxis de un Comando
- Variables, Alias y Funciones
- Comandos de Utilidad y Consulta
- Linux como Sistema Multiusuario
- Introducción a los Usuarios y Grupos
- Gestión de Usuarios
- Gestión de Grupos
- Gestión de Contraseñas
- Búsqueda de Información de Usuarios y Grupos con
getent
- Atributos de Archivos: Propiedad y Permisos de los Archivos
- Cambio de Propiedad y Permisos
umask: Permisos Predeterminados de Archivos- Cambio de Identidad y Privilegios
- Gestión de Paquetes (Package Management)
- Compresión y Archivado de Archivos
- Optimización y Conversion de Archivos