Linux continúa sorprendiendo por la variedad de herramientas para instalar programas. Los principiantes con frecuencia preguntan por qué en un artículo recomiendan apt, y en otro — pacman, y qué tienen en común snap y flatpak. Entender este ecosistema es más fácil si imaginarlo como un gran mercado: cada distribución tiene su propio «comercio», pero existen puestos independientes con paquetes universales. En este repaso recorreremos los gestores de paquetes clásicos, abordaremos los formatos contenedorizados modernos y explicaremos cuándo usar cada herramienta.
Por qué hay tantas formas de instalar una aplicación en Linux
Históricamente cada rama de Linux desarrolló su propio sistema de gestión de software: Debian creó el formato .deb, Fedora se basó en .rpm, y Arch Linux siguió su propio camino con archivos simples. Dentro de cada ecosistema hay decenas de miles de paquetes y gestión automática de dependencias. Cuando aparecieron las aplicaciones contenedorizadas, el problema de compatibilidad se redujo: un paquete puede incluir todas las bibliotecas. Así surgieron Snap y Flatpak. Al final, los usuarios disponen de la opción entre la solución nativa y formatos universales.
Gestores de paquetes clásicos y repositorios
Qué es un paquete
Un paquete es un archivo con binarios, metadatos y scripts de instalación. Los dos formatos principales son .deb y .rpm. No son intercambiables, por lo que un paquete compilado para Debian no sirve en Fedora sin recompilar.
Un repositorio — no solo una carpeta en el servidor
Un repositorio contiene un índice: una lista de paquetes con sumas de verificación, versiones y dependencias. El gestor de paquetes descarga ese índice para saber qué archivos necesita el sistema y dónde encontrarlos. El índice se almacena en archivos de texto comprimidos (habitualmente Packages.gz o repodata), y los paquetes se alojan en directorios adyacentes.
Algoritmo de funcionamiento del gestor
- Sincronizar la caché local con el índice.
- Construir el grafo de dependencias del software seleccionado.
- Descargar los archivos necesarios.
- Verificar sumas de verificación y firmas.
- Desempaquetar los archivos en el sistema de ficheros.
- Ejecutar los scripts post-install (actualizar la caché de iconos, iniciar demonios).
APT — el corazón de los ecosistemas Debian y Ubuntu
Advanced Package Tool no es un único comando, sino un conjunto de utilidades. Prácticamente todos los derivados de Debian, incluyendo Ubuntu, Linux Mint y Kali, usan apt. La principal ventaja son paquetes estables y cuidadosamente verificados. La desventaja es que las versiones del software son relativamente conservadoras.
Comandos frecuentes
- apt update — actualizar los índices de los repositorios.
- apt upgrade — instalar versiones nuevas de todo el software instalado.
- apt install nginx — instalar un paquete nuevo.
- apt search firefox — buscar un programa por nombre.
APT verifica firmas digitales y admite el “pinning” de versiones, lo que es útil en servidores. Si necesita paquetes más recientes, se puede añadir un PPA adicional o usar los backports.
DNF — evolución de yum en Fedora y RHEL
Dandified Yum reemplazó a yum desde Fedora 22. Es más rápido gracias al uso de libsolv, maneja mejor la dependencia «paquete + arquitectura» y permite deshacer transacciones.
Características clave
- Naturaleza transaccional: si una instalación falla, el sistema vuelve al estado anterior.
- Plugins: dnf-automatic para actualizaciones en segundo plano, dnf-plugins-core para gestionar repositorios.
- Sistema de grupos potente: se puede instalar todo un entorno de escritorio con un comando como dnf groupinstall workstation.
DNF es la opción para quienes quieren un sistema más actualizado pero estable. Los paquetes en Fedora se actualizan más rápido que en Debian, aunque pasan por pruebas en Bodhi.
Pacman — minimalismo y flexibilidad de Arch Linux
Pacman es conocido por opciones concisas: pacman -Syu actualiza todo, pacman -S instala paquetes, pacman -Rns elimina junto con los archivos de configuración. Arch sigue el principio KISS, por lo que los repositorios contienen binarios casi desnudos sin parches innecesarios.
La potencia del AUR
Arch User Repository (AUR) es un enorme repositorio de recetas de compilación mantenido por la comunidad. La mayoría de usuarios emplean asistentes, por ejemplo yay, para compilar paquetes automáticamente. El AUR hace que el ecosistema de Arch sea muy rico, pero exige confiar en los PKGBUILD y saber leer scripts.
Snap — paquetes con su propio entorno
Snap fue desarrollado por Canonical y funciona en cualquier sistema moderno con systemd. Cada paquete se ejecuta en una caja aislada, y las dependencias residen junto a la aplicación. Esto permite instalar versiones recientes sin el riesgo de “romper” el sistema.
Ventajas
- Actualizaciones automáticas y descargas diferenciales.
- Mismo paquete para Ubuntu, Fedora y Arch.
- Se pueden configurar permisos mediante snap connections.
Inconvenientes
- Mayor uso de disco por la duplicación de bibliotecas.
- Arranque lento de aplicaciones gráficas hasta que se calienta la caché.
- Tienda centralizada Snapcraft — dependencia de Canonical.
Snap es ideal para aplicaciones que publican versiones con rapidez: Visual Studio Code, Docker, Telegram.
Flatpak — aplicaciones universales en una caja de arena
Flatpak surgió como respuesta de la comunidad a Snap. También utiliza un sandbox, pero confía en repositorios descentralizados: el más popular es Flathub. Flatpak se integra con el portal de seguridad xdg-desktop-portal, por lo que funciona bien en Wayland.
Arquitectura
- Base Runtime — conjunto de bibliotecas comunes para varias aplicaciones (org.freedesktop, org.gnome).
- Manifest — JSON o YAML que describe los pasos de compilación.
- Actualizaciones diferenciales — se descarga solo lo que cambia.
Flatpak se usa con mayor frecuencia para aplicaciones de escritorio: GIMP, LibreOffice, Steam. Para paquetes de servidor sigue siendo mejor el gestor clásico, ya que el sandbox de Flatpak limita el acceso a la red.
Cuándo elegir apt, dnf, pacman, snap o flatpak
A continuación hay un resumen que ayudará a tomar la decisión.
- Si trabajas en un servidor Ubuntu o Debian y valoras la estabilidad — mantente con APT y los repositorios oficiales.
- Si necesitas una compilación reciente de gcc, Python o el kernel — Fedora con DNF o Arch con Pacman ofrecerán actualizaciones antes.
- Si requieres la versión más nueva de una aplicación de escritorio sin añadir repositorios manualmente — prueba Snap o Flatpak.
- Si quieres un sistema minimalista para personalizar — Pacman junto con AUR cubrirán casi todas las necesidades.
- Si despliegas contenedores Docker o Podman — evita depender de Snap: habrá menos conflictos con cgroup.
Guía práctica: instalación del programa «ejemplo-time»
Supongamos que hay que instalar la herramienta de monitorización htop.
- APT: sudo apt update && sudo apt install htop
- DNF: sudo dnf install htop
- Pacman: sudo pacman -S htop
- Snap: sudo snap install htop
- Flatpak: flatpak install flathub io.htop.HTop
Tenga en cuenta que Snap y Flatpak usan nombres de paquete propios, a veces distintos del nombre en el sistema.
Errores frecuentes y formas de resolverlos
No se pueden resolver las dependencias
Verifique si hay un repositorio de terceros con una versión más nueva del paquete. En APT puede ayudar el comando apt policy paquete. En DNF — dnf repoquery --unsatisfied.
El paquete está retenido
APT bloquea la actualización si la versión del PPA es anterior a la de los repositorios principales. Quite la retención: sudo apt-mark unhold paquete.
Conflicto de archivos al instalar desde AUR
Pacman no sabe de los archivos creados manualmente. Elimine el archivo en conflicto o instale el paquete con la opción --overwrite si está seguro de la seguridad.
Servicios y recursos útiles
- Debian Packages — búsqueda de versiones .deb.
- Fedora Copr — repositorios de terceros para DNF.
- Arch Package Database.
- Flathub Apps.
- Snap Store.
Conclusiones
Los gestores de paquetes en Linux están pensados para facilitar la vida, no para complicarla. Las herramientas clásicas como APT, DNF y Pacman ofrecen fiabilidad y transparencia. Los formatos universales Snap y Flatpak dan libertad a los desarrolladores y acceso a actualizaciones a los usuarios finales. La opción ideal es combinar: instalar los componentes básicos con el gestor nativo y obtener programas puntuales desde repositorios universales. Así el sistema se mantendrá limpio y usted conservará flexibilidad en la elección del software.