Skip to content

01 Package Management

Alan edited this page Jun 13, 2026 · 1 revision

Package Management (Gestión de Paquetes)

Tabla de Contenidos

Qué es el Package Management

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.

Conceptos Básicos

Dependencias de Software

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.

Tipos de Dependencias

  • Dependencias obligatorias: sin estas, el software no puede funcionar
  • Dependencias opcionales: proporcionan características adicionales
  • Dependencias de desarrollo: necesarias solo para compilar el software

Paquetes

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)

Repositorios

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.

Tipos de Package Managers (Gestores de Paquetes)

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:

Package Managers de Bajo Nivel

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)

Package Managers de Alto Nivel

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

Formatos de Paquetes

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

Operaciones Básicas

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:

Operaciones Básicas de Package Managers de Bajo Nivel

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

Operaciones Básicas de Package Managers de Alto Nivel

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-get y apt-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

Ejemplos Prácticos de Uso de Package Managers

1. Instalar un Editor de Texto

# En Ubuntu/Debian
sudo apt update
sudo apt install vim

# En Fedora
sudo dnf install vim

# En Arch Linux
sudo pacman -Sy vim

2. Buscar Paquetes Relacionados con Desarrollo Web

# 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

3. Actualizar el Sistema Completo

# En Ubuntu/Debian
sudo apt update && sudo apt upgrade

# En Fedora
sudo dnf upgrade

# En Arch Linux
sudo pacman -Syu

4. Instalar un Paquete Local

# 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

Recursos Recomendados

Referencias

Introducción a los Sistemas Operativos

Introducción a Linux

Licencias de Software

Archivos y Directorios

Introducción a la CLI

Manipulación de Archivos y Directorios

Documentación y Exploración de Comandos

Redirección

Búsqueda de Archivos y Texto

Editores de Texto de Terminal

Gestión de Usuarios y Grupos

Propiedad y Permisos

Herramientas Esenciales

Hardware

Apéndice

Clone this wiki locally