¿Cómo gestionar paquetes en Linux? Yum, RPM, Apt, Dpkg, Aptitude y Zypper

Aprender Certificado Fundación Linux en España contenido Técnicos desde Cero en CiberED

En Linux, el software se distribuye en paquetes que contienen los binarios, bibliotecas, archivos de configuración y metadatos necesarios para instalar, actualizar o eliminar una aplicación. Un gestor de paquetes automatiza estas tareas, resolviendo dependencias y manteniendo una base de datos de lo instalado.

9.1. Introducción: por qué es crucial la gestión de paquetes

Para el administrador de sistemas, dominar las herramientas de gestión de paquetes de su distribución es indispensable. El examen LFCS puede incluir tareas en sistemas basados en RPM (Red Hat, CentOS, Fedora, openSUSE) o en Debian (Debian, Ubuntu). Por ello, este capítulo abarca:

  • La herramienta de bajo nivel rpm y el gestor de alto nivel yum/dnf (y cómo ha evolucionado).
  • Las equivalentes en Debian: dpkg y apt/apt-get, así como la interfaz aptitude.
  • El gestor Zypper de openSUSE.
  • La gestión de repositorios de software.

9.2. Conceptos comunes

  • Paquete: archivo que contiene el software (.rpm, .deb).
  • Repositorio: colección de paquetes indexados, accesible localmente o en red.
  • Dependencia: otros paquetes necesarios para que el software funcione.
  • Firma digital: garantiza la autenticidad e integridad del paquete (GPG).
  • Base de datos de paquetes: registro de todos los paquetes instalados y sus archivos.

Parte I: El ecosistema RPM (Red Hat, CentOS, Fedora, openSUSE)

9.3. RPM (Red Hat Package Manager) – Nivel bajo

rpm opera directamente sobre archivos .rpm. No resuelve dependencias, pero es potente para consultas, verificación y operaciones básicas.

9.3.1. Instalar, actualizar y eliminar

  • Instalar un paquete (sin dependencias):

    sudo rpm -ivh paquete.rpm
    

    Opciones: -i install, -v verbose, -h barra de progreso (hash).

  • Actualizar (instala si no existe, o actualiza si hay versión anterior):

    sudo rpm -Uvh paquete.rpm
    

    -U upgrade; -F freshen (solo actualiza si ya instalado).

  • Eliminar:

    sudo rpm -e nombre_paquete
    

    (sin .rpm, solo el nombre). Puede fallar por dependencias; se fuerza con --nodeps (peligroso).

9.3.2. Consultas (query)

rpm -q permite interrogar la base de datos de paquetes instalados.

  • Ver si un paquete está instalado: rpm -q nombre
  • Listar todos los paquetes instalados: rpm -qa
  • Mostrar información de un paquete: rpm -qi nombre
  • Listar los archivos que contiene: rpm -ql nombre
  • Saber a qué paquete pertenece un archivo: rpm -qf /ruta/al/archivo
  • Mostrar dependencias de un paquete: rpm -qR nombre
  • Mostrar paquetes que dependen de él: rpm -q --whatrequires nombre

También se puede consultar un archivo .rpm sin instalar usando -p:

rpm -qpl paquete.rpm   # archivos que contiene
rpm -qpR paquete.rpm   # dependencias

9.3.3. Verificación

rpm -V verifica integridad de archivos (tamaño, permisos, MD5, etc.) respecto a la base de datos. Si no hay salida, todo está bien. Útil para detectar cambios no autorizados.

rpm -Va   # verifica todos los paquetes

9.4. YUM (Yellowdog Updater Modified) – Nivel alto

yum fue el gestor estándar en RHEL/CentOS hasta la versión 7. Resuelve dependencias automáticamente consultando repositorios configurados en /etc/yum.repos.d/.

9.4.1. Operaciones básicas

  • Buscar paquetes: yum search palabra
  • Listar paquetes instalados y disponibles:
    yum list installed
    yum list available
    yum list paquete
    
  • Instalar: sudo yum install paquete
  • Actualizar:
    sudo yum update             # todos los paquetes
    sudo yum update paquete
    
  • Eliminar: sudo yum remove paquete
  • Información: yum info paquete
  • Listar dependencias: yum deplist paquete
  • Limpiar caché: sudo yum clean all

9.4.2. Grupos de paquetes

yum groups list muestra grupos (ej. “Herramientas de desarrollo”). Se instalan con sudo yum groupinstall "nombre".

9.4.3. Historia y reversión

yum history muestra las transacciones realizadas. Se puede deshacer con sudo yum history undo ID.

9.4.4. Plugins y repositorios

  • Listar repositorios: yum repolist

  • Añadir un repositorio: se coloca un archivo .repo en /etc/yum.repos.d/. Ejemplo de contenido:

    [epel]
    name=Extra Packages for Enterprise Linux
    baseurl=http://download.fedoraproject.org/pub/epel/7/x86_64/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    

    Se puede instalar con paquete epel-release o manualmente.

  • Habilitar/deshabilitar temporalmente un repositorio: yum --enablerepo=epel install paquete

9.5. DNF – El sucesor de YUM

En Fedora y RHEL/CentOS 8+, yum es un enlace simbólico a dnf. La sintaxis es casi idéntica, pero con mejoras de rendimiento y algunas funciones extra. Para LFCS, si ves yum, considera que también se aplica a dnf. Algunas diferencias:

  • dnf autoremove (elimina dependencias huérfanas) → en yum se usaba yum autoremove (disponible en versiones recientes).
  • dnf provides sustituye a yum whatprovides.
  • dnf module gestiona flujos de aplicaciones (AppStreams) en RHEL 8+.

Comandos equivalentes: usar dnf igual que yum en la mayoría de los casos.


Parte II: El ecosistema Debian (Debian, Ubuntu, Mint)

9.6. Dpkg – Nivel bajo

Similar a rpm, trabaja con archivos .deb. No resuelve dependencias.

  • Instalar un paquete: sudo dpkg -i paquete.deb
  • Eliminar (conservando configuración): sudo dpkg -r nombre_paquete
  • Purgar (eliminar todo, incluidos archivos de configuración): sudo dpkg -P nombre_paquete
  • Listar paquetes instalados: dpkg -l (o dpkg --list)
  • Estado de un paquete: dpkg -s nombre (similar a rpm -qi)
  • Listar archivos de un paquete instalado: dpkg -L nombre
  • Buscar a qué paquete pertenece un archivo: dpkg -S /ruta/archivo
  • Consultar un archivo .deb sin instalar: dpkg -c paquete.deb (contenido), dpkg -I paquete.deb (información).
  • Reconfigurar un paquete después de instalado: sudo dpkg-reconfigure nombre_paquete

9.7. APT (Advanced Package Tool) – Nivel alto

apt proporciona comandos de alto nivel como apt-get, apt-cache y el más moderno apt (simplificado, orientado al usuario). El archivo de configuración principal es /etc/apt/sources.list y los archivos en /etc/apt/sources.list.d/.

9.7.1. Gestión de la lista de paquetes

Antes de instalar, hay que actualizar los índices de paquetes:

sudo apt update   # equivalente a apt-get update

9.7.2. Instalar, actualizar, eliminar

  • Instalar: sudo apt install paquete
  • Actualizar paquetes instalados: sudo apt upgrade (o apt-get upgrade)
  • Actualizar la distribución completa (maneja cambios de dependencias más agresivos): sudo apt full-upgrade (antes dist-upgrade)
  • Eliminar: sudo apt remove paquete
  • Purgar: sudo apt purge paquete
  • Eliminar dependencias innecesarias: sudo apt autoremove

9.7.3. Búsqueda e información

  • Buscar: apt search palabra
  • Mostrar información: apt show paquete
  • Listar paquetes instalados: apt list --installed
  • Listar paquetes con actualizaciones: apt list --upgradable
  • Ver dependencias: apt depends paquete
  • Ver paquetes que dependen de él: apt rdepends paquete

9.7.4. apt-get y apt-cache (comandos clásicos)

  • apt-cache search equivale a apt search
  • apt-cache showapt show
  • apt-get install, apt-get remove, apt-get purge, apt-get autoremove
  • apt-get dist-upgrade

En el examen, tanto apt como apt-get son válidos, pero se recomienda conocer ambos.

9.7.5. Gestión de repositorios

El archivo /etc/apt/sources.list contiene líneas como:

deb http://archive.ubuntu.com/ubuntu focal main restricted
deb-src http://archive.ubuntu.com/ubuntu focal universe

Se pueden añadir repositorios editando este archivo o añadiendo un .list en /etc/apt/sources.list.d/. También se puede usar add-apt-repository (paquete software-properties-common):

sudo add-apt-repository ppa:nombre/ppa

Tras modificar, siempre sudo apt update.

9.8. Aptitude – Interfaz interactiva y más

aptitude es un gestor de paquetes basado en ncurses que también ofrece una línea de comandos potente, con un solucionador de dependencias más inteligente. Para LFCS, al menos debes conocer su existencia y algunos comandos:

  • Interfaz visual: sudo aptitude
  • Instalar: sudo aptitude install paquete
  • Buscar: aptitude search palabra
  • Mostrar información: aptitude show paquete
  • Eliminar: sudo aptitude remove paquete

Aptitude puede sugerir soluciones cuando hay conflictos de dependencias, algo que apt hace de forma más limitada.


Parte III: Zypper (openSUSE y SUSE Linux Enterprise)

9.9. Zypper – El gestor de openSUSE

Zypper es el gestor de paquetes de SUSE. Soporta RPM y repositorios con resolución de dependencias. Sus comandos son intuitivos.

9.9.1. Operaciones básicas

  • Buscar: zypper search palabra
  • Instalar: sudo zypper install paquete
  • Actualizar todos los paquetes: sudo zypper update
  • Eliminar: sudo zypper remove paquete
  • Información: zypper info paquete
  • Listar repositorios: zypper repos
  • Añadir repositorio: sudo zypper addrepo URL nombre
  • Eliminar repositorio: sudo zypper removerepo nombre
  • Actualizar la lista de paquetes: sudo zypper refresh

9.9.2. Parches y actualizaciones

  • Listar parches disponibles: zypper patches
  • Instalar parches: sudo zypper patch

9.9.3. Gestión de paquetes con patrones y productos

  • zypper patterns muestra patrones (grupos de paquetes). Se instalan con sudo zypper install -t pattern nombre.

9.10. Comparativa rápida de comandos

AcciónRPM / YUMDNF (Fedora/RHEL8+)Debian (apt)Zypper (openSUSE)
Instalar paqueteyum install pkgdnf install pkgapt install pkgzypper install pkg
Eliminar paqueteyum remove pkgdnf remove pkgapt remove pkgzypper remove pkg
Actualizar todosyum updatednf upgradeapt upgradezypper update
Buscaryum searchdnf searchapt searchzypper search
Informaciónyum infodnf infoapt showzypper info
Listar instaladosrpm -qadnf list --installedapt list --installedzypper search --installed-only
Archivo → paqueterpm -qf /pathdnf provides /pathdpkg -S /pathzypper se --provides /path
Limpiar cachéyum clean alldnf clean allapt clean / apt autocleanzypper clean
Gestionar repos/etc/yum.repos.d//etc/yum.repos.d//etc/apt/sources.listzypper repos / addrepo

9.11. Gestión de repositorios locales y caché

Un tema que puede aparecer en LFCS es la configuración de un repositorio local. Por ejemplo, montar un DVD de instalación como repositorio.

  • En YUM/DNF: crear un archivo .repo con baseurl=file:///mnt/cdrom. También se puede usar createrepo para generar metadatos de un directorio con paquetes RPM.
  • En APT: añadir línea deb file:/mnt/cdrom distro main; luego apt update.
  • En Zypper: zypper addrepo /mnt/cdrom localrepo.

9.12. Ejercicios prácticos

  1. RPM básico: Descarga un paquete .rpm (por ejemplo, epel-release). Consulta su información, dependencias y archivos que contiene. Instálalo con rpm -ivh. Verifica con rpm -qa | grep epel que está instalado. Elimínalo con rpm -e.

  2. YUM/DNF: Lista los repositorios configurados. Busca el paquete httpd (Apache). Instálalo, luego desinstálalo. Limpia la caché. Utiliza yum history para ver las transacciones.

  3. Dpkg: Descarga un paquete .deb (ej. google-chrome-stable). Con dpkg -c y dpkg -I examínalo. Instálalo; si faltan dependencias, arréglalo con sudo apt install -f. Finalmente púrgalo con dpkg -P.

  4. APT: Añade un PPA (ej. ppa:deadsnakes/ppa) con add-apt-repository. Actualiza e instala un paquete de ese PPA. Luego elimina el PPA y el paquete. Usa apt autoremove para limpiar.

  5. Zypper (si tienes openSUSE): Añade un repositorio (ej. Packman), actualiza e instala vlc. Desinstálalo y limpia.

  6. Consulta de archivos: En cualquier sistema, determina a qué paquete pertenece el archivo /etc/ssh/sshd_config. En RPM usa rpm -qf, en Debian dpkg -S.

  7. Repositorio local: Monta una ISO de instalación en /mnt. Configúrala como repositorio (creando .repo o añadiendo deb file:...) e instala algún paquete desde ella.

9.13. Resumen y consejos para LFCS

  • Recuerda: RPM y dpkg son herramientas de bajo nivel, no resuelven dependencias. Utilízalas para consultas o cuando no hay red.
  • Los gestores de alto nivel (yum/dnf, apt, zypper) son los que usarás en el día a día.
  • Conoce la ubicación de los archivos de configuración de repositorios y cómo añadir/quitar repositorios.
  • Saber buscar información (search, info, provides) es fundamental para resolver dependencias o averiguar qué paquete contiene un comando.
  • Práctica tanto en entornos RPM como DEB; en el examen te pueden enfrentar a cualquiera.
  • Familiarízate con apt moderno, pero también con apt-get porque muchos scripts antiguos aún lo utilizan.

Con este capítulo dominas la instalación y mantenimiento del software en las principales familias de Linux. En el próximo capítulo nos adentraremos en el shell scripting básico y la resolución de problemas, una habilidad transversal que potencia todo lo aprendido.

Vistas: 1

Descubre más desde CIBERED

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Scroll al inicio