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.

Masking🔗

Flatpak 1.5.0 or later allows to mask a ref to prevent it from being automatically updated or installed.

If the Flatpak remote is configured in user location, flatpak mask --user needs to be used otherwise it defaults to system location. flatpak remote-list can be used to find the location of the Flatpak remote.

To list the currently masked patterns:

# System
$ flatpak mask

# User
$ flatpak mask --user

To mask a ref pattern:

# System
$ flatpak mask org.example.brokenapp

# User
$ flatpak mask --user org.example.brokenapp

# Mask only the beta branch of the ref
$ flatpak mask org.example.brokenapp//beta

To remove a masked pattern:

# System
$ flatpak mask --remove org.example.brokenapp

# User
$ flatpak mask --user --remove org.example.brokenapp

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.