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.