El comando snap en Linux: instalar aplicaciones universales

¿Qué es Snap?

Snap es un sistema de empaquetado y distribución de aplicaciones desarrollado por Canonical, la empresa detrás de Ubuntu. Su objetivo principal es ofrecer aplicaciones universales que puedan ejecutarse en cualquier distribución Linux sin preocuparse por las dependencias específicas de cada sistema. Cada paquete Snap incluye el binario de la aplicación, todas sus bibliotecas y recursos necesarios, encapsulados en un entorno aislado llamado sandbox. Este enfoque elimina el famoso infierno de dependencias y permite que los usuarios obtengan la misma versión de un programa tanto en Ubuntu, Fedora, Arch o openSUSE, siempre que el demonio snapd esté instalado y funcionando.

Ventajas de usar Snap

  • Universality: un mismo snap funciona en múltiples distros.
  • Actualizaciones automáticas y transparentes: snapd revisa periódicamente versiones más recientes y las aplica sin intervención del usuario.
  • Rollback sencillo: si una actualización causa problemas, se puede volver a la versión anterior con un solo comando.
  • Aislamiento de seguridad: cada snap se ejecuta en un sandbox que limita su acceso al sistema y a otros snaps.
  • Reducción de conflictos: al incluir sus propias dependencias, no interfieren con paquetes del gestor tradicional (apt, dnf, pacman).

Instalación de Snap en diferentes distribuciones

En Ubuntu y sus derivados, snapd viene preinstalado desde la versión 16.04 LTS. En otras distribuciones, basta con usar el gestor de paquetes propio:

  • En Debian: sudo apt update && sudo apt install snapd
  • En Fedora: sudo dnf install snapd seguido de sudo systemctl enable --now snapd.socket
  • En Arch Linux: sudo pacman -S snapd y luego habilitar el socket.
  • En openSUSE: sudo zypper install snapd y activar el servicio.

Después de instalar, es recomendable reiniciar o iniciar sesión nuevamente para que la ruta /snap/bin quede en el PATH del usuario.

Comandos básicos de Snap

  • snap find <texto> busca aplicaciones en el repositorio Snap Store.
  • snap install <paquete> descarga e instala el snap indicado.
  • snap list muestra todos los snaps instalados y sus versiones.
  • snap refresh <paquete> actualiza un snap específico; sin argumentos actualiza todos.
  • snap remove <paquete> elimina el snap del sistema.
  • snap revert <paquete> vuelve a la versión anterior del snap.
  • snap info <paquete> muestra detalles como versión, editor y permisos.

Ejemplo práctico: instalar una aplicación

Supongamos que queremos instalar el editor de código Visual Studio Code. El proceso es tan sencillo como:

sudo snap install code --classic

El flag –classic permite que el snap acceda a todo el sistema de archivos, necesario para que VS Code funcione como un programa tradicional. Tras la instalación, podemos ejecutarlo desde el menú de aplicaciones o tecleando code en la terminal.

Otro ejemplo popular es el cliente de mensajería Slack:

sudo snap install slack

En este caso no se requiere –classic porque el snap está confinado y aún así ofrece toda la funcionalidad esperada.

Actualización y eliminación de paquetes Snap

Las actualizaciones se gestionan automáticamente en segundo plano, pero el usuario puede forzar una revisión con:

sudo snap refresh

Si se desea retirar una aplicación, basta con:

sudo snap remove 

Al eliminar, snapd conserva una caché de versiones anteriores por un corto periodo, lo que permite restaurarlas rápidamente si se cambia de opinión.

Consideraciones de seguridad y rendimiento

Aunque el aislamiento de los snaps aumenta la seguridad, también implica un ligero overhead en el arranque de la aplicación, ya que cada snap debe montar su propio sistema de archivos squashfs. Sin embargo, en hardware moderno este retraso es imperceptible para la mayoría de los usuarios. Además, los snaps pueden ocupar más espacio en disco porque incluyen sus dependencias; no obstante, la deduplication de capas comunes mitigará parcialmente este efecto.

Desde el punto de vista de la confianza, el Snap Store permite a cualquiera publicar un snap, pero Canonical revisa y firma los snaps oficiales; se recomienda verificar el editor y los permisos antes de instalar snaps de terceros.

Conclusión

El comando snap se ha convertido en una herramienta esencial para quien busca una forma sencilla y consistente de instalar aplicaciones en Linux, independientemente de la distribución. Su modelo de paquetes universales, actualizaciones automáticas y aislamiento de seguridad lo posiciona como una alternativa sólida a los gestores de paquetes tradicionales. Si aún no lo has probado, instalar snapd y probar con algún programa popular como Visual Studio Code o Slack es la mejor manera de experimentar sus beneficios de primera mano.