Dicas e truques

Esta página explica alguns recursos úteis da CLI do Flatpak.

Testando um aplicativo com um runtime diferente

Você pode (para testar) executar um aplicativo com um runtime diferente do que normalmente usa. Por exemplo, para executar o gedit estável com o ultimo runtime instável do GNOME, você pode:

$ flatpak run --runtime-version=master org.gnome.gedit

Você também pode usar um runtime completamente diferente (mas o mesmo número de versão):

$ flatpak run --runtime=org.gnome.Sdk org.gnome.gedit

Se você deseja apenas usar o sdk em vez da plataforma como a acima, uma abordagem melhor é usar -d.

Aviso

A execução em um runtime com uma ABI completamente diferente é um comportamento indefinido e sem suporte.

Fazendo downgrade

É possível fazer o downgrade de um aplicativo instalado (ou runtime) para uma compilação mais antiga.

Primeiro você procura o commit no qual está interessado:

$ flatpak remote-info --log flathub org.gnome.Recipes

Então, você implanta o commit:

$ sudo flatpak update \
  --commit=ec07ad6c54e803d1428e5580426a41315e50a14376af033458e7a65bfb2b64f0 \
  org.gnome.Recipes

Nota

O exemplo aqui usa o sudo para instalações do sistema porque, diferentemente das atualizações normais, os downgrades são considerados uma ação privilegiada. Se o aplicativo for instalado por usuário, você o executará como esse usuário.

Se você possui o Flatpak 1.5.0 ou posterior, também pode impedir que o aplicativo seja incluído nas atualizações (manuais ou automáticas):

$ flatpak mask org.gnome.Recipes

Fazendo bisect em regressões em compilações de aplicativos

Caso as versões mais recentes de um aplicativo introduzam regressões, você pode usar flatpak-bisect para descobrir qual commit introduziu a regressão. Funciona como git bisect.

Caso sua distribuição não instale o utilitário `` flatpak-bisect``, você poderá encontrá-lo distribuído juntamente com o código-fonte Flatpak, em https://github.com/flatpak/flatpak/blob/main/scripts/flatpak-bisect

Primeiro, você atualiza o aplicativo e obtém seu histórico:

$ flatpak-bisect org.gnome.gedit start

Em seguida, você deve definir o commit atual como o primeiro commit incorreto:

$ flatpak-bisect org.gnome.gedit bad

Agora você precisa encontrar o hash do primeiro bom commit conhecido. Para isso, você pode ver o histórico da compilação executando:

$ flatpak-bisect org.gnome.gedit log

Para começar a dividir, faça o checkout do primeiro commit conhecido que você encontrar:

$ flatpak-bisect org.gnome.gedit checkout 5cd2b0648618c9038fbc6830733817309ade29541cdd8383830bbb76f6accf0d

Após definir o commit incorreto e o primeiro commit válido, é possível iniciar o aplicativo para verificar se o commit atual na sessão de divisão é bom ou ruim.

Para marcar um commit como bom ou ruim, execute:

$ flatpak-bisect org.gnome.gedit good

Ou:

$ flatpak-bisect org.gnome.gedit bad

flatpak-bisect vai lhe informar quando o primeiro commit ruim for encontrado.

Adicionando uma instalação personalizada

Por padrão, o Flatpak instala aplicativos em todo o sistema e também pode ser instalado por usuário com a opção --user aceita pela maioria dos comandos. Uma terceira opção é configurar uma instalação personalizada, que pode ser armazenada em um disco rígido externo.

Primeiro, certifique-se de que o diretório de configuração existe:

$ sudo mkdir -p /etc/flatpak/installations.d

Em seguida, abra um arquivo nesse diretório como root:

$ sudoedit /etc/flatpak/installations.d/extra.conf

E escreva algo assim:

[Installation "extra"]
Path=/run/media/mwleeds/ext4_4tb/flatpak/
DisplayName=Extra Installation
StorageType=harddisk

Veja flatpak-installation(5) para a especificação completa do formato. Substitua o caminho pelo caminho real que você deseja usar. Você pode usar df para ver sistemas de arquivos montados e mkdir para criar um diretório flatpak para que o caminho especificado por Path= exista.

Então você pode adicionar um controle remoto usando um comando como:

$ flatpak --installation=extra remote-add flathub https://flathub.org/repo/flathub.flatpakrepo

E instale nele com:

$ flatpak --installation=extra install flathub org.inkscape.Inkscape

Nota

Se sua instalação personalizada for a única com o controle remoto do qual você está instalando, --installation pode ser omitido.

E execute aplicativos a partir dele com:

$ flatpak --installation=extra run org.inkscape.Inkscape

Nota

Se sua instalação personalizada for a única com o aplicativo que você está executando, --installation pode ser omitido.

Configurando limites de recursos para aplicativos

Quando o systemd está disponível, o Flatpak tenta colocar os processos do aplicativo em um escopo como app-flatpak-com.brave.Browser-*.scope (no caso do Brave), com * substituído por um sufixo arbitrário. Isso significa que você pode criar um arquivo como ~/.config/systemd/user/app-flatpak-com.brave.Browser-.scope.d/memory.conf com conteúdos como:

[Scope]
MemoryHigh=1G

Então, após um systemctl --user daemon-reload, esses parâmetros systemd.resource-control(5) serão aplicados a todas as instâncias desse aplicativo.