AppImage

Instalación de aplicaciones con Snap, Flatpak y Appimage

Las aplicaciones en GNU/Linux se distribuyen usando repositorios. Un repositorio es básicamente un servidor que contiene las aplicaciones y sus dependencias. Cuando queremos instalar una aplicación accedemos al gestor de paquetes de la distribución y escribimos el nombre. Automáticamente se descargan todos los elementos necesarios para usar la aplicación y al poco rato aparecerá en el menú de inicio. Los repositorios facilitan mucho la instalación del software aunque tienen algunas limitaciones. La primera limitación es la versión de las aplicaciones. Es posible que el programador de una aplicación tenga versiones más recientes que las que se encuentran en los repositorios. Si una aplicación necesita un paquete de dependencias más reciente que el que se encuentra en el repositorio no se podrá instalar. Aquí la solución es complicada. Si actualizas la versión de las dependencias puedes romper otras aplicaciones del sistema. Dentro de este escenario aparecen nuevos formatos para distribuir las aplicaciones: Snap, Flatpak y Appimage. Estos formatos se comportan como un ejecutable de Windows e incluyen (de forma simplificada) la aplicación y sus dependencias. De esta forma se pueden instalar las aplicaciones aunque no cumplamos los requisitos en nuestra distribución.

Snap, Flatpak y AppImage

Los tres formatos persiguen el mismo objetivo: poder usar aplicaciones actualizadas sin depender de los paquetes que tengamos en el repositorio de la distribución. Al final nos permiten instalar aplicaciones recientes en sistemas “antiguos”. Un paquete que use AppImage contiene todos los elementos necesarios para la aplicación. Descargamos la aplicación y al ejecutarla nos preguntará si queremos que se integre en los menús del sistema. A continuación ya podemos usar la aplicación. Se comporta como un archivo ejecutable de Windows que no necesita instalación. Su principal ventaja es que se ejecuta con los permisos del usuario y no necesita permisos de administrador para instalarse en el sistema. Un inconveniente que tenemos es que no permite las actualizaciones automáticas y se hace necesario descargar la actualización de forma manual. Un ejemplo de AppImage lo tenemos en el editor de notas Joplin.

Notas de Evernote importadas en Joplin

Notas de Evernote importadas en Joplin

Snap y Flatpak son muy similares conceptualmente. Ambos formatos tienen una tienda asociada y permiten las actualizaciones automáticas. Snap es de Canonical y se integra bien en Ubuntu y sus derivados. Al contener todos los elementos necesarios para la aplicación también se puede usar en otras distribuciones. Un detalle importante es que los paquetes Snap están confinados (son la evolución de los paquetes Click) y limitan las cosas que puede hacer la aplicación para hacerla más segura. Como ejemplo de paquete Snap tenemos el editor 3D Blender. Por su parte, Flatpak también permite confinar las aplicaciones y sus paquetes ocupan menos. En lugar de tener todas las dependencias dentro del paquete se distribuyen de forma independiente. Al hacer ésto instalamos más paquetes pero los paquetes principales ocupan menos espacio. La ventaja principal de Flatpak es su integración con los escritorios de GNU/Linux.

Blender 2.8.3

Blender 2.8.3

Elección entre Snap, Flatpak y AppImage

Hemos visto por encima las características de cada formato de paquetes. La elección entre un formato u otro depende de nuestras necesidades. Lo principal es que podamos usar la versión de la aplicación que necesitamos. Si usamos Ubuntu o una distribución derivada lo normal sería buscar primero el paquete Snap. En caso de no tener una versión reciente ya probaríamos con FlatPak o AppImage.Si nuestra distribución no es Ubuntu la primera elección sería Flatpak. Puede parecer que AppImage pierde respecto a Snap y Flatpak. La falta de un repositorio centralizado o la posibilidad de actualizar de forma automática la aplicación son detalles que están en su contra.

Recordemos que AppImage no necesita instalarse y se puede usar en equipos en los que sólo tengamos permisos de usuario. En este escenario es el ganador absoluto ya que permite usar versiones recientes de las aplicaciones sin hacer modificaciones en el sistema. Se comporta como una aplicación portable de Windows. Lo dejamos en una memoria USB y lo podemos usar en cualquier equipo.

AppImage

AppImage

Referencias

Conclusiones

Al principio choca un poco que tengamos varios “formatos” para realizar una misma tarea. Snap, Flatpak y AppImage tienen el mismo objetivo: permitir al usuario usar aplicaciones recientes aunque no cumplan las dependencias. Incluyen todos los elementos necesarios y son más sencillas de usar para el usuario final. Desde el lado del programador también es buena idea usar estos formatos. Distribuyes un programa con todas las dependencias necesarias y sabes que va a funcionar en cualquier distribución. Al usar paquetes DEB o RPM dependes de que incluyan la aplicación en los repositorios y de las dependencias que haya en ese momento. Las versiones de los repositorios no las prepara normalmente el programador ya que no es práctico.

AppImage es como una aplicación portable. La descargas y la ejecutas directamente. No necesitas permisos de administrador para trabajar. Snap y Flatpak si que necesitan permisos de administrador para instalarse en el sistema. A cambio permiten la actualización automática de las aplicaciones y las ejecutan de forma confinada. La aplicación tiene los permisos justos para que sean más seguras de usar. Ambos formatos se pueden usar con independencia de la distribución. Snap funciona muy bien en Ubuntu y sus derivados. Por su parte FlatPak tiene buena integración en los escritorios y tiene más apoyos de otros proyectos. En este punto la elección entre un formato u otro ya depende del usuario.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.