Compilando seu primeiro Flatpak¶
Este tutorial fornece uma rápida introdução à compilação de Flatpaks. Nele, você aprenderá como criar um aplicativo Flatpak básico, que pode ser instalado e executado.
Para concluir este tutorial, você deve ter seguido o guia de configuração em flatpak.org. Você também precisa ter instalado o flatpak-builder
, que geralmente está disponível no mesmo repositório que o pacote flatpak
(por exemplo, use apt
ou dnf
). Você também pode instalá-lo como um flatpak com flatpak install flathub org.flatpak.Builder
.
1. Instale um runtime e o SDK correspondente¶
O Flatpak exige que cada aplicativo especifique um runtime que ele usa para suas dependências básicas. Cada runtime possui um SDK (Kit de desenvolvimento de software) correspondente, que contém tudo o que está no runtime, além de cabeçalhos e ferramentas de desenvolvimento. Esse SDK é necessário para compilar aplicativos para o runtime.
In this tutorial we will use the Freedesktop 23.08 runtime and SDK. To install these, run:
$ flatpak install flathub org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08
2. Crie o aplicativo¶
O aplicativo que será criado para este tutorial é um script simples. Para criá-lo, copie o seguinte:
#!/bin/sh
echo "Hello world, from a sandbox"
Agora cole isso em um arquivo vazio e salve-o como hello.sh
.
3. Adicione um manifesto¶
Cada Flatpak é compilado usando um arquivo de manifesto que fornece informações básicas sobre o aplicativo e instruções sobre como ele deve ser compilado. Para adicionar um manifesto ao aplicativo “hello world”, adicione o seguinte a um arquivo vazio:
id: org.flatpak.Hello
runtime: org.freedesktop.Platform
runtime-version: '23.08'
sdk: org.freedesktop.Sdk
command: hello.sh
modules:
- name: hello
buildsystem: simple
build-commands:
- install -D hello.sh /app/bin/hello.sh
sources:
- type: file
path: hello.sh
Agora salve o arquivo junto com hello.sh
e chame-o de org.flatpak.Hello.yml
.
Em um aplicativo mais complexo, o manifesto listaria vários módulos. O último seria tipicamente o próprio aplicativo, e os anteriores seriam dependências incluídas no aplicativo porque não fazem parte do runtime.
4. Compile o aplicativo¶
Agora que o aplicativo tem um manifesto, o flatpak-builder
pode ser usado para compilá-lo. Isso é feito especificando o arquivo de manifesto e um diretório de destino:
$ flatpak-builder build-dir org.flatpak.Hello.yml
Este comando criará cada módulo listado no manifesto e o instalará no subdiretório /app
, dentro do diretório build-dir
.
5. Teste a compilação¶
Para verificar se a compilação foi bem-sucedida, execute o seguinte:
$ flatpak-builder --user --install --force-clean build-dir org.flatpak.Hello.yml
$ flatpak run org.flatpak.Hello
Nesta segunda vez, passamos --force-clean
, o que significa que o diretório build-dir
criado anteriormente foi excluído antes do início da nova compilação.
Parabéns! Você fez um aplicativo!
6. Coloque o aplicativo em um repositório¶
Se você quiser compartilhar o aplicativo, você pode colocá-lo em um repositório. Isso é feito passando o argumento --repo
para flatpak-builder
:
$ flatpak-builder --repo=repo --force-clean build-dir org.flatpak.Hello.yml
Isso faz a compilação novamente e, no final, exporta o resultado para um diretório local chamado repo
. Observe que o flatpak-builder
mantém um cache de compilações anteriores no subdiretório .flatpak-builder
, portanto, fazer uma segunda compilação como essa é muito rápido.
In order for your application to show up in application stores while testing with a local repository, you might have
to run flatpak build-update-repo repo
.
For more information how to publish to application stores see MetaInfo files.
7. Instale o aplicativo¶
Agora estamos prontos para adicionar o repositório que acabou de ser criado e instalar o aplicativo. Isso é feito com dois comandos:
$ flatpak --user remote-add --no-gpg-verify tutorial-repo repo
$ flatpak --user install tutorial-repo org.flatpak.Hello
O primeiro comando adiciona o repositório que foi criado na etapa anterior. O segundo comando instala o aplicativo a partir do repositório.
Os dois comandos usam o argumento --user
, o que significa que o repositório e o aplicativo são adicionados por usuário e não em todo o sistema. Isso é útil para testes.
Observe que o repositório foi adicionado com --no-gpg-confirm
, pois uma chave GPG não foi especificada quando o aplicativo foi construído. Isso é bom para testes, mas para repositórios oficiais, você deve assiná-los com uma chave GPG privada.
8. Execute o aplicativo¶
Tudo o que resta é experimentar o aplicativo. Isso pode ser feito com o seguinte comando:
$ flatpak run org.flatpak.Hello
Isso executa o aplicativo, para que ele imprima ‘Hello world, from a sandbox’.