Flatpak es un formato de paquetes que viene a ofrecer una alternativa a las “dependencias tradicionales” en las distribuciones GNU/Linux, siendo un intento de facilitar a los desarrolladores el camino para portar y/o desarrollar aplicaciones para el sistema Open Source.
Su planteamiento ha dejado dividida a la comunidad debido a la posibilidad de tener bibliotecas duplicadas, y esto a pesar de aportar ciertas cosas beneficiosas como el sandbox, que no veremos utilizado a su máximo potencial hasta que Wayland se haya consolidado como estándar, algo que no parece que vaya a producirse a corto plazo debido a algunas piedras grandes que se están encontrando por el camino.
Flatpak tiene un gran rival, Snap, desarrollado por Canonical e impulsado a través de la popular Ubuntu. Más allá de las diferencias técnicas, que la competencia entre las dos tecnologías es feroz es algo que se está viendo desde muchos frentes, debido a que Discover y GNOME Software han anunciado que soportarán ambos formatos, mientras que Fedora ha tomado la decisión de incluir Snap en sus repositorios oficiales, un movimiento que resulta sorprendente si tenemos en cuenta que Flatpak es impulsado sobre todo por Red Hat.
La mayoría de distribuciones se han decantado por Flatpak, ya sea porque es el único disponible en sus repositorios o bien es el que trae instalado por defecto, mientras que Snap solo parece encontrar continuidad en Ubuntu (y en consecuencia en sus derivadas directas). Aquí posiblemente merezca la pena mencionar la situación de Linux Mint, que apoya e incluye de forma preinstalada Flatpak frente a Snap, aunque Ubuntu es posiblemente la única distribución que ofrece un buen soporte de ambos formatos, posiblemente porque a Canonical no le conviene perderse la estela de su competidor por si su tecnología fracasa, y a esto hay que añadir la mayor compatibilidad con el software disponible para GNU/Linux.
Tras hacer una introducción de Flatpak y su situación, vamos a adentrarnos en un tutorial básico sobre cómo utilizarlo. Si bien la gracia de esta tecnología es tener una disposición más gráfica de todo, cosa que queda potenciada debido a las facilidades que se dan en tiendas de aplicaciones como GNOME Software y el Gestor de Software de Linux Mint, nos centraremos en la interfaz de consola para ofrecer una disposición más genérica que pueda ser seguida desde cualquier distribución, aunque es importante tener en cuenta la versión de Flatpak que se esté utilizando y el disponer de una interfaz gráfica que pueda hacer funcionar las aplicaciones.
Instalación de Flatpak
Posiblemente los usuarios encuentren dificultades para la gestión gráfica de paquetes Flatpak en Ubuntu 18.04 con GNOME. Afortunadamente, esa situación tiene arreglo a través de los siguientes pasos.
En primer lugar hay que instalar los paquetes necesarios:
sudo apt install flatpak gnome-software-plugin-flatpak
Tras esto, solo queda reiniciar (como método cómodo) y Flatpak ya tendría que poderse usar sin complicaciones en GNOME Software desde la versión oficial de Ubuntu. Por otro lado, posiblemente sea necesario seguir pasos similares en otras distribuciones.
Pero como ya hemos dicho, vamos a centrarnos en la consola para ofrecer una disposición más genérica que puede ser aplicada a cualquier distribución que soporte Flatpak y con el único requisito de disponer de interfaz gráfica. Obviamente, en todas las grandes distribuciones solo hay que instalar un paquete llamado “flatpak”.
Ubuntu:
sudo apt install flatpak
Fedora:
sudo dnf install flaptak
RHEL 7/CentOS 7:
sudo yum install flatpak
O en caso de no disponer de sudoer en RHEL 7/CentOS 7:
su yum install flatpak
Arch Linux y derivadas que usen Pacman:
sudo pacman -S flatpak
O en caso de no disponer de usuario sudoer:
su pacman -S flatpak
En openSUSE:
sudo zypper install flatpak
Ubuntu 16.04:
sudo add-apt-repository ppa:alexlarsson/flatpak sudo apt update sudo apt install flatpak
Añadiendo repositorios en Flaptak
Para poder añadir aplicaciones de Flatpak sería recomendable antes añadir los repositorios. Como mínimo habría que configurar el oficial de esta tecnología, que no es otra cosa que el repositorio de aplicaciones Flathub.
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Los que estén interesados en la ejecución de Windows sobre GNU/Linux tienen en Winepack un proyecto bastante prometedor, así que pueden añadir su repositorio mediante el siguiente comando.
sudo flatpak remote-add --if-not-exists winepak https://dl.winepak.org/repo/winepak.flatpakrepo
Buscando e instalando paquetes
Buscar un paquete en Flatpak resulta muy sencillo. Aquí vamos a tomar como ejemplo el cliente del conocido servicio de música en streaming Spotify:
flatpak search spotify
La instalación de Spotify y de cualquier otro paquete Flatpak desde consola requiere la especificación del repositorio (en este caso, Flathub), quedando el comando de la siguiente manera.
sudo flatpak install flathub com.spotify.Client
Luego Flatpak nos pedirá confirmación tanto para la aplicación como las dependencias, algo a lo que habrá que responder con la “y” (o “s” si la interfaz sale traducida).
Como ya hemos comentado, la gracia de esta tecnología es poder ofrecer una disposición más gráfica de la instalación, gestión y utilización de paquetes, así que estos pueden ser descargados de forma individual en el almacenamiento del ordenador e instalarlos mediante la tienda de aplicaciones que se esté usando en caso de estar correctamente configurada. ¿Desde consola? Tomando como ejemplo el paquete Flatpak de GIMP descargado de Flathub, pondremos el siguiente ejemplo:
sudo flatpak install org.gimp.GIMP.flatpakref
Tras seguir estos pasos y en caso de disponer de un lanzador de aplicaciones, el usuario tendría que ser capaz de iniciar Spotify y GIMP desde ahí siguiendo el procedimiento estándar, como si hubiesen sido instalados mediante paquetes con dependencias tradicionales (Deb, RPM… ).
Ejecutando, desinstalando y actualizando aplicaciones de Flatpak
Como ya hemos dicho, Flatpak ha sido concebido para ser usado desde una interfaz gráfica, por lo que su utilización desde consola puede terminar siendo un tanto compleja para algunos usuarios.
Aquí hay que tener cuidado, ya que para ejecutar una aplicación Flatpak desde consola hay que invocarlo a partir del nombre del paquete en ese formato, y no con el nombre de la aplicación como pasaría con los paquetes de “dependencias tradicionales”. Siguiendo con el ejemplo de Spotify, su ejecución se realiza con el siguiente comando:
flatpak run com.spotify.Client
Si se quiere desinstalar una aplicación se tiene que hacer de la siguiente manera (en este caso seguiremos el caso de GIMP):
sudo flatpak uninstall org.gimp.GIMP # El .flatpakref es la extensión del paquete, por lo que no es necesario volverlo a escribir
Las aplicaciones pueden ser actualizadas de una vez, como si estuvieran instaladas desde un gestor de paquetes tradicional:
sudo flatpak update
Una tecnología con mucho potencial
Como se puede apreciar, Flatpak es una tecnología con mucho potencial, sin embargo, todavía le falta para poder sustituir a los paquetes de “dependencias tradicionales” en algunas situaciones.
Primero, y como ya hemos mencionado, características como el sandbox no mostrarán todo su potencial hasta que Wayland se consolide. Por otro lado, parece que aún presenta ciertos problemas de integración con el sistema.
Un ejemplo de lo último mostrado en el párrafo anterior es MonoDevelop, que estuvo distriubyéndose mediante paquete Flatpak, pero debido a problemas de integración con tecnologías como MonoGame ha tenido que volver a ser distribuido bajo el formato de “dependencias tradicionales”.