Hola Fronters 👋
Llegamos a la quinta y última entrega de nuestra serie sobre administración de paquetería en Linux. Hasta ahora hemos cubierto los gestores tradicionales de las distribuciones más populares. Pero en los últimos años ha surgido una nueva categoría: los formatos universales de paquetes.
Estos formatos prometen acabar con el viejo dilema «¿funcionará en mi distribución?» al empaquetar la aplicación con todas sus dependencias. Las tres grandes alternativas son Snap, Flatpak y AppImage.
📋 Serie completa:
- Parte I: APT y dpkg
- Parte II: DNF y YUM
- Parte III: Pacman
- Parte IV: Gentoo, Slackware, openSUSE, Solus y Void
Snap — El ecosistema de Canonical
Snap es el formato universal impulsado por Canonical (la empresa detrás de Ubuntu). Los paquetes Snap («.snap») son auto-contenidos, incluyen sus dependencias y se ejecutan en un entorno aislado (sandbox) mediante AppArmor.
snapd — El motor
Para usar Snap necesitas snapd instalado y corriendo como servicio:
sudo apt install snapd # en Debian/Ubuntu
sudo dnf install snapd # en Fedora
sudo systemctl enable --now snapd # activar el servicio
Comandos básicos de Snap
snap find "firefox" # buscar paquete en la Snap Store
snap install firefox # instalar paquete
snap list # listar snaps instalados
snap remove firefox # eliminar paquete (conserva datos)
snap remove --purge firefox # eliminar todo, incluidos datos
snap refresh # actualizar todos los snaps
snap refresh firefox # actualizar paquete específico
snap info firefox # información detallada
snap changes # historial de operaciones
snap revert firefox # revertir a versión anterior
snap disable firefox # deshabilitar (sin eliminar)
snap enable firefox # rehabilitar
Canales (Channels)
Snap permite elegir el canal de actualización, similar a los «tracks» de los repositorios tradicionales:
snap install firefox --channel=stable # estable (por defecto)
snap install firefox --channel=candidate # candidato a estable
snap install firefox --channel=beta # beta
snap install firefox --channel=edge # bleeding edge (nightly)
snap switch firefox --channel=beta # cambiar de canal
Niveles de confinamiento
Snap clasifica sus paquetes según el nivel de aislamiento:
- strict: Aislamiento completo. Solo accede a recursos explícitamente concedidos (interfaces como
network,home,camera). - classic: Acceso completo al sistema. Requiere aprobación manual y se usa para herramientas como
snapcraftocode(VS Code). - devmode: Modo desarrollo. Snap funciona sin restricciones, ideal para depurar permisos.
snap install code --classic # VS Code necesita modo classic
snap connections code # ver conexiones/permisos activos
snap interface network # listar snaps con acceso a red
💡 Snap Store: La tienda oficial de snaps está en snapcraft.io. Snap actualiza automáticamente los paquetes en segundo plano, algo que gusta a unos y molesta a otros.
Flatpak — El estándar de Freedesktop
Flatpak es un sistema de paquetes universales desarrollado por la comunidad Freedesktop (Alex Larsson, Red Hat). A diferencia de Snap, Flatpak no está controlado por una sola empresa y se ejecuta en un sandbox con Bubblewrap usando namespaces de Linux.
Instalación de Flatpak
sudo apt install flatpak # Debian/Ubuntu
sudo dnf install flatpak # Fedora
sudo pacman -S flatpak # Arch Linux
sudo zypper install flatpak # openSUSE
Agregar Flathub (el repositorio principal)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Comandos básicos de Flatpak
flatpak search firefox # buscar aplicación
flatpak install flathub org.mozilla.firefox # instalar (usando ID)
flatpak run org.mozilla.firefox # ejecutar aplicación
flatpak list # listar aplicaciones instaladas
flatpak list --app # solo aplicaciones (no runtimes)
flatpak update # actualizar todo
flatpak update org.mozilla.firefox # actualizar específico
flatpak uninstall org.mozilla.firefox # eliminar aplicación
flatpak uninstall --unused # eliminar runtimes no usados
flatpak info org.mozilla.firefox # información del paquete
flatpak ps # procesos Flatpak en ejecución
flatpak override org.mozilla.firefox --socket=wayland # modificar permisos
flatpak history # historial de operaciones
Runtimes — Las dependencias compartidas
Los paquetes Flatpak no incluyen todas las dependencias. En su lugar, usan runtimes compartidos (GNOME, KDE, Freedesktop, etc.):
flatpak list --runtime # listar runtimes instalados
flatpak install flathub org.gnome.Platform//45 # instalar runtime específico
Cada runtime es una plataforma base (versión de GNOME, KDE o Freedesktop) compartida entre todas las apps Flatpak que la usan, ahorrando espacio en disco.
Permisos en Flatpak
Flatseal es la herramienta gráfica para gestionar permisos de aplicaciones Flatpak. También se puede hacer desde CLI:
flatpak info -m org.mozilla.firefox # ver manifiesto con permisos
flatpak override org.mozilla.firefox --filesystem=~/Descargas # acceso a carpeta
flatpak override --user org.mozilla.firefox --device=dri # acceso a GPU
💡 Flathub: flathub.org es el repositorio principal de Flatpak, con cientos de aplicaciones verificadas. Es el equivalente a la Snap Store pero descentralizado.
AppImage — Un solo archivo, listo para ejecutar
AppImage es el más simple de los tres: un solo archivo ejecutable que contiene la aplicación y todo lo necesario. No requiere instalación, no necesita demonios, no modifica el sistema.
Cómo usar AppImage
- Descargar el archivo .AppImage desde la página oficial de la aplicación
- Dar permisos de ejecución:
chmod +x nombre-de-la-app.AppImage
- Ejecutar:
./nombre-de-la-app.AppImage
Y ya está. No hay paso 4. Así de simple.
AppImageLauncher
Para integrar AppImages en el menú de aplicaciones, existe AppImageLauncher:
# Instalar AppImageLauncher
sudo add-apt-repository ppa:appimagelauncher-team/stable
sudo apt update && sudo apt install appimagelauncher
# Luego solo haz doble clic en cualquier .AppImage y te preguntará si integrarlo
Extrayendo AppImages
También puedes extraer el contenido de un AppImage para inspeccionarlo:
./app.AppImage --appimage-extract # extrae a squashfs-root/
./app.AppImage --appimage-mount # montar (sin extraer) con fuse
Comparativa: Snap vs Flatpak vs AppImage
+----------------+------------------+------------------+------------------+
| Característica | Snap | Flatpak | AppImage |
+----------------+------------------+------------------+------------------+
| Desarrollador | Canonical | Freedesktop | comunidad |
| Sandbox | AppArmor | Bubblewrap | No (por defecto) |
| Actualizaciones| Automáticas | Manual/comando | Manual |
| Tienda central | Snap Store | Flathub | No (cada app) |
| Demonio | snapd (requiere) | No requiere | No requiere |
| Runtimes | No (todo incluido)| Sí (compartidos)| No (todo incluido)|
| Integración | Buena (snapd) | Buena (portal) | Varía |
| Arranque | Instantáneo | Instantáneo | 1-3 seg extra |
+----------------+------------------+------------------+------------------+
Contenedores vs Paquetes Tradicionales
Es importante entender la diferencia entre estos formatos universales y los gestores tradicionales:
- Paquetes tradicionales (
.deb,.rpm): Se integran completamente con el sistema. Las dependencias se comparten globalmente. Ocupan menos espacio pero pueden generar conflictos de versiones. - Formatos universales (Snap, Flatpak, AppImage): Aíslan la aplicación del sistema. Las dependencias van incluidas o se comparten mediante runtimes. Ocupan más espacio pero eliminan los conflictos.
- Contenedores (Docker, Podman): No son gestores de paquetes sino entornos completos. Útiles para servidores y desarrollo, pero no para aplicaciones de escritorio cotidianas.
No hay un ganador absoluto. En mi opinión:
- Para servidores y CLI: paquetes tradicionales o contenedores.
- Para aplicaciones de escritorio: Flatpak es la opción más equilibrada (sandbox real, sin vendor lock-in, rendimiento nativo).
- Para apps portátiles (USB, compartir): AppImage es imbatible por su simplicidad.
- Para ecosistema Ubuntu: Snap tiene la mejor integración (ya viene preinstalado).
Conclusión
Hemos recorrido un largo camino desde APT y dpkg hasta Snap, Flatpak y AppImage. Linux ofrece un ecosistema de empaquetado increíblemente diverso, cada uno con sus fortalezas y filosofías particulares.
Lo más valioso que puedes hacer como administrador o usuario Linux es conocer las herramientas disponibles y elegir la adecuada para cada situación. No hay una respuesta única — la flexibilidad es el superpoder de Linux.
Espero que esta serie te haya sido útil. Si te quedó alguna duda o quieres que cubra algún tema específico, déjalo en los comentarios. ¡Nos vemos en el próximo artículo! 🐧
ITFrontech — Tu portal de tecnología y sistemas