Construcción de apps simples

La utilidad flatpak proporciona un conjunto simple de comandos para construir y distribuir aplicaciones. Estos permiten crear nuevos Flatpaks, en los que se pueden construir aplicaciones nuevas o existentes.

Esta sección describe cómo construir una aplicación simple que no requiere ninguna dependencia adicional fuera del runtime contra el que es construida. Para poder completar los ejemplos, debería haber completado antes los pasos de la Preparación.

Creación de una app

Para crear una aplicación, el primer paso es usar el comando build-init. Esto crea un directorio en el cual la aplicación puede ser construida, con la estructura de directorios correcta y el archivo de metadatos que contiene información sobre la app. El formato de build-init es:

$ flatpak build-init DIRECTORY APPNAME SDK RUNTIME [BRANCH]
  • DIRECTORIO es el nombre del directorio que será creado para contener a la aplicación

  • NOMBREAPP es el nombre de D-Bus de la aplicación

  • SDK es el nombre del SDK que será usado para construir la aplicación

  • RUNTIME es el nombre del runtime runtime que será requerido por la aplicaación

  • RAMA es típicamente la versión del SDK y del runtime que será usada

Por ejemplo, para construir la aplicación Diccionario de GNOME usando el SDK de GNOME 3.22, el comando se vería así:

$ flatpak build-init dictionary org.gnome.Dictionary org.gnome.Sdk org.gnome.Platform 3.22

Puede probar este comando ahora mismo. En el próximo paso construiremos una aplicación dentro del directorio dictionary creado.

Construcción

flatpak build se usa para construir una aplicación usando un SDK. Este comando se usa para proporcionar acceso al sandbox. Por ejemplo, el siguiente comando creará un archivo dentro del directorio /app del sandbox, en el directorio files:

$ flatpak build dictionary touch /app/some_file

Se recomienda eliminar el archivo antes de continuar.

El comando build permite que las aplicaciones existentes que hayan sido hechas con la tradicional rutina configure, make, make install sean construidas dentro de flatpak. Puede probar esto usando el Diccionario de GNOME. Primero, descargue los archivos fuente, extráigalos y posiciónese dentro del directorio creado:

$ wget https://download.gnome.org/sources/gnome-dictionary/3.20/gnome-dictionary-3.20.0.tar.xz
$ tar xvf gnome-dictionary-3.20.0.tar.xz
$ cd gnome-dictionary-3.20.0/

Luego puede usar el comando build para construir e instalar el código fuente dentro del directorio dictionary que fue creado anteriormente:

$ flatpak build ../dictionary ./configure --prefix=/app
$ flatpak build ../dictionary make
$ flatpak build ../dictionary make install
$ cd ..

Dado que esto corre en el sandbox, el compilador y otras herramientas del SDK son usadas para construir e instalar, en vez de usarse las del sistema host.

Completar la construcción

Una vez que la aplicación fue construida, necesita correr el comando build-finish para especificar el acceso a las distintas partes del host, tales como la red y los sockets de gráficos. Este comando también es usado para especificar el comando que será llamado para lanzar la app (esto se hace modificando el archivo metadata), y para crear el directorio de exportación de la aplicación. Por ejemplo:

$ flatpak build-finish dictionary --socket=x11 --share=network --command=gnome-dictionary

En este punto ya se ha construido exitosamente un flatpak listo para ser lanzado. Para probar el app, necesita exportar el Diccionario a un repositorio. Agregue ese repositorio y luego instale y corra la app:

$ flatpak build-export repo dictionary
$ flatpak --user remote-add --no-gpg-verify --if-not-exists tutorial-repo repo
$ flatpak --user install tutorial-repo org.gnome.Dictionary
$ flatpak run org.gnome.Dictionary

Esto exporta la app, crea un repositorio llamado tutorial-repo, instala la aplicación Diccionario para este solo usuario, y finalmente lanza la aplicación.