Cómo instalar aplicaciones Flatpak

flatpak-icon

 

 

¿Qué es Flatpak?

Flatpak es una tecnología relativamente nueva que cuenta con el apoyo de RedHat Inc. y que poco a poco va creciendo en popularidad conforme al incremento de aplicaciones .flatpak que van surgiendo de diferentes proyectos. Flatpak es un marco de trabajo (Framework) que permite crear y distribuir aplicaciones las cuales podremos instalar de forma sencilla en nuestro sistema. Claro que con los conocimientos apropiados también podremos crear nuestras propias aplicaciones si quisiéramos.

Los que nos movemos en el mundo Linux conocemos la gran variedad de distribuciones y sus respectivas versiones, además de sus librerías (bibliotecas) con su propia versión y los diferentes formatos de empaquetado. Flatpak viene a ser una solución para eliminar esa brecha y permitir ejecutar una misma aplicación en diferentes distribuciones Linux, incluyendo diferentes versiones.

De acuerdo al sitio oficial, se diseñó desde el principio pensando en la seguridad, por lo que las aplicaciones están aisladas unas de otras y desde el sistema principal. Vendría a ser la contra-cara de los paquetes Snap de Ubuntu.

Xdg-app era el nombre de desarrollo de esta tecnología. Luego pasó a denominarse Flatpak cuando el proyecto cobró forma y estaba listo para ser usado en un contexto más amplio.

¿Cómo funciona Flatpak?

faltpak-diagram

 

Básicamente se compone de tres partes:

Runtimes (Tiempos de ejecución)

Tiempos de ejecución contienen las dependencias que son utilizadas por las aplicaciones. Ellos son siempre los mismos independientemente de la distribución Linux que se esté utilizando. En este aspecto, las aplicaciones no tendrán que actualizarse para adaptarse a los cambios de la distribución.

Actualmente se encuentran disponibles tres tiempos de ejecución:

  • GNOME
  • KDE
  • FreeDesktop

Bundles (Bibliotecas empaquetadas)

Aquí se encuentran las bibliotecas que no están en Runtimes. Estas son agrupadas —empaquetadas— como parte de la aplicación. De esta forma posibilita el uso de las dependencias que no están en una distribución, y de utilizar una versión diferente de una dependencia de la que está en una distribución.

Sandboxes (Cajas de arena)

Esta tecnología cuyo objetivo es el aislamiento de procesos es bastante empleada en multiplicidad de proyectos: máquinas virtuales, contenedores, micro-kernels, servicios web, etc. Particularmente me familiaricé con el término Sandbox en Gentoo Linux, el cual también nos permite crear cajas de arena. La mayoría de las distribuciones tienen disponible esta útil herramienta.

En el caso que nos atañe; Flatpak, este aísla aplicaciones desde el sistema operativo anfitrión, así como de otras aplicaciones. Esto proporciona seguridad para los usuarios y un entorno previsible para los desarrolladores.

Actualmente la caja de arena presenta algunos agujeros negros, es decir que no está totalmente aislada. La mayoría de las aplicaciones aún necesitan comunicarse con el sistema (cargar/guardar archivos, servidor de audio/video, enviar notificaciones…). Una API se está desarrollando para controlar el acceso fuera de la caja y poner al Usuario a cargo de ella.

Instalación de Flatpak

Algunas de las distribuciones más populares ya ofrecen la aplicación Flatpak en sus repositorios oficiales. En otras distros está disponible a través de la comunidad.

Para instalarla ejecutamos los siguientes comandos desde un terminal —con privilegios root—:

Fedora 23 en adelante y Mageia

dnf install flatpak

Debian experimental

apt install flatpak

Debian jessie

wget -O - https://sdk.gnome.org/apt/debian/conf/alexl.gpg.key|apt-key add -

echo "deb [arch=amd64] https://sdk.gnome.org/apt/debian/ jessie main" > \
/etc/apt/sources.list.d/flatpak.list

apt install apt-transport-https

apt update

apt install flatpak

Ubuntu 16.04

add-apt-repository ppa:alexlarsson/flatpak

apt update

apt install flatpak

Arch Linux

pacman -S flatpak

## Desde los repositorios AUR

yaourt -S flatpak-git

Yo he utilizado openSUSE Leap 42.1 para las pruebas e instalé Flatpak mediante Click Install

Aplicaciones disponibles en formato Flatpak

GNOME es el proyecto que cuenta con más aplicaciones en formato Flatpak, ha apoyado al proyecto desde el comienzo. Incluso es posible instalar aplicaciones con GNOME 17 en versiones estables —actualmente 3.20—.

En el caso de Fedora 24 estos no son muy útiles, ya que cuenta con la última versión, GNOME 3.20. Sin embargo usuarios de Fedora 23 con GNOME 3.18 pueden aprovecharlo.

GNOME también provee una larga lista de versiones nightly que se convertirán en GNOME 3.22, y son las que estarán disponibles en los repositorios GNOME de Fedora 25.

Para aquellos que seguimos los pasos de Fedora, en la próxima versión (25) Flatpak estará completamente integrado en el software de GNOME, por lo que instalar este tipo de aplicaciones será aún más fácil: descargar el archivo .flatpak, doble-click en él y se instalará por si solo.

Repositorios disponibles actualmente —también existen otros proyectos independientes—:

  • gnome-apps (versión estable)
  • gnome-nightly-apps (se construyen diariamente)
  • nightly-graphics (construcciones diarias de aplicaciones gráficas más comunes)

Instalar nuestra aplicación Flatpak

Una vez que tengamos instalado y funcionando Flatpak ha llegado el momento de instalar nuestra aplicación. Para ello antes debemos añadir:

  • Repositorio que contiene las aplicaciones GNOME
  • Repositorio que contiene el motor de tiempo de ejecución (runtime) de GNOME para proveer las dependencias necesarias.

De los tiempos de ejecución (runtimes) se desprenden dos versiones:

stable runtimes:

flatpak-img

 

nightly runtimes:

flatpak-img-01

 

Ejecutar en un terminal:

wget https://sdk.gnome.org/keys/gnome-sdk.gpg

flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/

flatpak remote-add --gpg-import=gnome-sdk.gpg gnome-apps \
https://sdk.gnome.org/repo-apps/

## Intalación de Runtimes

flatpak install gnome org.gnome.Platform 3.20

Llegado a este punto ya estaremos en condiciones de instalar aplicaciones — GNOME estable, en este caso —. Para ver un listado de las aplicaciones disponibles ejecutamos:

flatpak remote-ls gnome-apps --app

para instalar una aplicación —p.ej., Gedit:

flatpak install gnome-apps org.gnome.gedit stable

Corremos la aplicación —también se puede hacer desde el lanzador de la aplicación si no quieres usar la terminal—:

flatpak run org.gnome.gedit

flatpak-img-02

 

Si te interesa probar lo que vendrá solo hace falta añadir los repositorios nightly respectivos:

wget https://sdk.gnome.org/nightly/keys/nightly.gpg

flatpak remote-add --gpg-import=nightly.gpg gnome-nightly-apps \
https://sdk.gnome.org/nightly/repo-apps/

flatpak remote-add --gpg-import=nightly.gpg gnome-nightly \
https://sdk.gnome.org/nightly/repo/

Las aplicaciones gnome-nightly-apps requieren de la versión nightly de org.gnome.Platform runtime además de utilizar el nombre de versión master:

flatpak remote install gnome-nightly org.gnome.Platform master

Listar repositorios disponibles e instalar p.ej., Gitg:

flatpak remote-ls gnome-nightly-apps --app

flatpak-img-03

 

Instalación:

flatpak install gnome-nightly-apps org.gnome.gitg master

para actualizar la aplicación:

flatpak update org.gnome.gitg master

Por último nos encontramos con el repositorio nightly graphics, este contiene las construcciones diarias de algunas de las aplicaciones gráficas más comunes.

  • GIMP (incluida la versión GTK+3)
  • Inkscape
  • MyPaint
  • Scribus

Estas aplicaciones requieren de org.gnome.Platform 3.20 (runtime) la cual se instaló anteriormente. Para habilitar nigthly-graphics ejecutamos:

wget http://209.132.179.2/keys/nightly.gpg

flatpak remote-add --gpg-import=nightly.gpg nightly-graphics \
http://209.132.179.2/repo/

Listar aplicaciones:

flatpak remote-ls nightly-graphics --app

para instalar —observar que al igual que gnome-nightly también se utiliza master como nombre de versión —:

flatpak install nightly-graphics org.inkscape.InkscapeDevel master

flatpak-img-04

 

Flatpak permite la instalación de aplicaciones sin ser usuario con privilegios (root). Solo es necesario anteponer el parámetro – -user en la línea de comando y todo el contenido se encontrará en nuestra carpeta local —un ejemplo puede verse en la instalación de LibreOffice.flatpak—.

Como había expresado anteriormente, otros proyectos también ofrecen empaquetado en formato Flatpak. KDE cuenta a la fecha con 13 aplicaciones (nightly builds). Por su parte otro gran proyecto The Document Foundation ofrece LibreOffice.flatpak el cual se encuentra disponible en su página oficial y es el que instalaremos como prueba.

Instalación de LibreOffice 5.2 Flatpak

Este paquete debe ser probado en un sistema operativo Linux (x86_64). Recomiendo prestar especial atención a las instrucciones especificadas en los respectivos sitios web de cada proyecto para asegurarnos una correcta instalación.
wget https://sdk.gnome.org/keys/gnome-sdk.gpg

flatpak remote-add --user --gpg-import=gnome-sdk.gpg gnome \
https://sdk.gnome.org/repo/

flatpak install --user gnome org.gnome.Platform 3.20

Si queremos que LibreOffice utilice el idioma de nuestro entorno de escritorio:

flatpak install --user gnome org.gnome.Platform.Locale 3.20

Finalmente descargamos el paquete LibreOffice.flatpak y ejecutamos en un terminal, en la misma carpeta donde hayamos descargado nuestro paquete:

flatpak install --user --bundle LibreOffice.flatpak

No es necesario desinstalar una versión de LibreOffice de nuestros repositorios oficiales —lo mismo aplicaría para cualquier otro paquete—, ya que la aplicación que acabamos de instalar no interferirá en absoluto con dicho paquete.

Podemos ejecutar LibreOffice mediante el lanzador de aplicaciones, o en consola con la siguiente orden:

flatpak run org.libreoffice.LibreOffice

En este caso se ha instalado la versión LibreOffice 5.2 beta, sin embargo el paquete LibreOffice.flatpak se conecta con un repositorio del servidor download.documentfoundation.org que se actualiza a la versión más reciente de LibreOffice. Por lo tanto cuando se publique una nueva versión podremos actualizar nuestro paquete instalado ejecutando:

flatpak update --user org.libreoffice.LibreOffice

flatpak-img-05

De esta forma tendremos ambas suites ofimáticas: la última versión disponible de LibreOffice para pruebas y la versión oficial de nuestros repositorios para casos en los que necesitemos más estabilidad.

Algunas notas importantes que nos indican en el sitio oficial:

  • LibreOffice.flatpak se basa en el motor de tiempo de ejecución de GNOME 3.20, que utiliza la interfaz GTK+ 3 de LibreOffice, la cual provee compatibilidad con servidores como Wayland, entre otras funcionalidades.
  • Este paquete único incluye todas las traducciones disponibles en LibreOffice, ya que no afectan considerablemente su tamaño.
  • Las aplicaciones empaquetadas con Flatpak no son capaces todavía de comunicarse con el resto de los programas instalados en un equipo, lo que significa que no es posible, por ejemplo, pulsar en un enlace de un documento de Writer para abrirlo en un navegador. Y como LibreOffice.flatpak no incluye la versión de la Ayuda sin conexión en todos los idiomas, tampoco funcionará la tecla F1 para utilizar la Ayuda en línea.
  • LibreOffice.flatpak no incluye ningún entorno de ejecución de Java (JRE, por sus siglas en inglés). Las características que necesitan un JRE no funcionarán.
  • Por el momento no existen versiones en Flatpak del kit de desarrollo de software (SDK) de LibreOffice.

Eliminar repositorios

Por ejemplo, si quisiéramos eliminar el repositorio nightly-graphics bastaría con:

## Listar los repositorios

flatpak remote-list

## Eliminar un repositorio deseado

flatpak remote-delete nightly-graphics

flatpak-img-08

Desinstalar aplicaciones/runtimes

Para desinstalar una aplicación ej., Gedit estable:

flatpak uninstall org.gnome.gedit stable


## Si se utilizó la instalación con el parámetro --user

flatpak uninstall --user org.gnome.gedit stable

En el caso de quitar un tiempo de ejecución (runtime) p. ej., la versión 3.20:

flatpak uninstall org.gnome.Platform 3.20

o

flatpak uninstall --user org.gnome.Platform 3.20

Para ver todas las opciones disponibles ejecuta: flatpak --help en la terminal.

Conclusiones

Las distribuciones Linux se han diversificado de tal forma que ya no existe plena compatibilidad como en el pasado, ni siquiera entre derivadas de una distro en particular. Es ahí dónde herramientas como Flatpak nos puede ofrecer una solución concreta a un problema de manera fácil y segura, además con el aliciente de probar aplicaciones en sus últimas versiones sin interferir con la estabilidad de nuestro sistema.

Sin embargo no es una solución que contenta a todos. Muchos desacuerdos se producen cuando se trata sobre esta clase de herramientas, la «hinchazón» del sistema es el argumento que más se discute, no obstante —en mi opinión personal— creo que todo lo que sirva para unificar es más que bienvenido.

¿Te resultó interesante? Compártelo ...



Percaff_TI99

Publicado por Percaff_TI99

http://gutl.jovenclub.cu/ » Forma parte de GUTL desde el 10 agosto, 2013. Amante de la ciencia y tecnología en general. Usuario de GNU/Linux desde hace varios años.

Este artículo tiene 5 comentarios

  1. Ya era hora, cuando Flatpack y Snap entren al mainstream va a ser mas facil adoptar Linux en Cuba.

    • Hace unos días salió todo un artículo de un desarrollador de por allá por los países nórdicos (casi que al lado de la casa Linus Torvall jajaja ) donde se trataba como el concepto de SnapPacket abría brechas de seguridad en los sistemas GNU (y similares), ahora mismo no recuerdo donde fue que lo leí pero bueno… yo estoy contigo en eso de que en Cuba serán bien acogidos los SnapPackets, FlatPackets o cuanto packet que no dependa de un repo especifico o una distro especifica aparezca ¿fue eso lo que quisiste decir no 😉 ?

      • fue eso lo que quisiste decir no?

        Exacto, por ejemplo, en la seccion de !!!Software Actualizados del paquete pudieramos ver el ultimo GIMP, Python, VLC o Squid y ya no habria que esperar a actualizar repos o depender de ellos.

Los comentarios están cerrados.