Ubuntu Flatpak
O Flatpak é um formato de aplicativo que traz o programa junto com tudo o que ele precisa e o roda isolado do resto do sistema, como o Snap. A principal loja de Flatpaks é o Flathub (flathub.org), usada por quase todas as distribuições Linux. Ele não vem instalado no Ubuntu, mas é fácil de adicionar.
- O que são aplicativo, runtime e remote no Flatpak.
- Como instalar o Flatpak e adicionar o Flathub.
- Procurar, instalar, rodar, atualizar e remover aplicativos.
- A diferença entre instalação de sistema e de usuário.
- Quando escolher Flatpak, Snap, apt ou AppImage.
Antes do comando: três palavras novas
| Termo | O que é | Exemplo |
|---|---|---|
| Aplicativo | O programa em si, identificado por um ID em formato de "domínio ao contrário" | org.gimp.GIMP, com.spotify.Client |
| Runtime | Um pacote de bibliotecas compartilhado por vários aplicativos (ex.: tudo o que apps GNOME precisam). É baixado uma vez e reaproveitado | org.gnome.Platform |
| Remote | O nome que o Flatpak dá a um repositório de onde baixa apps | flathub |
Por causa dos runtimes, o primeiro aplicativo que você instala pode baixar centenas de megabytes. Os seguintes, que usam o mesmo runtime, ficam bem menores.
Instalação (uma vez só)
- Instalar o programa
flatpakcom o apt.$ sudo apt install flatpak
- Adicionar o Flathub como remote.
- flatpak
- O programa.
- remote-add
- Subcomando: adicionar um repositório.
- --if-not-exists
- Não dá erro se o Flathub já estiver adicionado.
- flathub
- O nome que você dá ao remote.
- https://dl.flathub.org/repo/flathub.flatpakrepo
- O endereço do arquivo de configuração do Flathub.
$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo $ flatpak remotes Nome Opções flathub system « adicionado para todos os usuários
- Sair e entrar de novo na sessão, para os aplicativos aparecerem no menu.
A Central de Aplicativos do Ubuntu mostra apenas snaps e pacotes .deb. Para instalar Flatpaks pela interface gráfica, use o site do Flathub (botão "Install") ou instale o GNOME Software com o plugin: sudo apt install gnome-software gnome-software-plugin-flatpak.
Procurar um aplicativo: search
- flatpak
- O programa.
- search
- Procura nos remotes configurados.
- gimp
- A palavra a procurar (no nome e na descrição).
$ flatpak search gimp Nome Descrição ID de aplicativo Versão Ramo Remotos Programa de manipulação de imagem do GNU High-end image creation… org.gimp.GIMP 3.2.6 stable flathub « este é o GIMP GIMP User Manual GIMP User Manual org.gimp.GIMP.Manual 2.10 2.10 flathub Resynthesizer Resynthesizer GIMP Plugins org.gimp.GIMP.Plugin.Resynthesizer 3.0.1 3 flathub
A coluna que importa é ID de aplicativo: é ela que você usa nos outros comandos. As versões mudam com o tempo; as do exemplo são ilustrativas.
Instalar: install
- flatpak install
- Subcomando de instalar.
- flathub
- De qual remote (opcional se só existe um).
- org.gimp.GIMP
- O ID do aplicativo.
$ flatpak install flathub org.gimp.GIMP Procurando por correspondências… Runtime exigido para org.gimp.GIMP/x86_64/stable (runtime/org.gnome.Platform/x86_64/49) localizado no remoto flathub Você deseja instalá-lo? [Y/n]: y « o runtime vem junto na primeira vez … Instalação concluída.
A saída muda conforme o app; o trecho acima é ilustrativo. O importante: confirme com y quando ele perguntar.
Use -y para responder "sim" a tudo: flatpak install -y flathub org.gimp.GIMP. Útil em scripts.
Sistema ou usuário?
Por padrão, o Flatpak instala para todos os usuários (instalação de sistema) e pede a senha numa janela. Com --user, instala só para você, na sua pasta pessoal, sem senha:
$ flatpak install --user flathub org.gimp.GIMP
| Sistema (padrão) | --user | |
|---|---|---|
| Quem pode usar | Todos os usuários | Só você |
| Onde fica | /var/lib/flatpak | ~/.local/share/flatpak |
| Pede senha | Sim | Não |
Rodar, listar, atualizar e remover
Rodar: run
Depois de sair e entrar na sessão, o app aparece no menu. Pelo terminal:
$ flatpak run org.gimp.GIMP
Listar: list
$ flatpak list --app Nome ID de aplicativo Versão Ramo Instalação GIMP org.gimp.GIMP 3.2.6 stable system
Sem --app, a lista inclui também os runtimes (Mesa, GNOME Application Platform, temas…), que você não instalou diretamente:
$ flatpak list Nome ID de aplicativo Versão Ramo Instalação Mesa …esktop.Platform.GL.default 26.1.4 25.08 user GNOME Application P… org.gnome.Platform 49 user « um runtime Yaru Gtk Theme org.gtk.Gtk3theme.Yaru 3.22 user
Detalhes: info
$ flatpak info org.gnome.Platform//49
GNOME Application Platform version 49 - Shared libraries used by GNOME
applications
ID: org.gnome.Platform
Ref: runtime/org.gnome.Platform/x86_64/49
Arq.: x86_64
Ramo: 49
Licença: GPL-2.0+
Origem: flathub
Instalação: user
Atualizar: update
$ flatpak update
Atualiza todos os aplicativos e runtimes. O sudo apt upgrade não atualiza Flatpaks; são sistemas separados (veja Atualizações).
Remover: uninstall
- flatpak uninstall
- Remove um aplicativo.
- --delete-data
- Opcional: apaga também as configurações do app em
~/.var/app/. - org.gimp.GIMP
- O ID.
$ flatpak uninstall org.gimp.GIMP # depois, limpe runtimes que nenhum app usa mais $ flatpak uninstall --unused
O --unused é o equivalente do apt autoremove: tira runtimes que ficaram sobrando e libera espaço.
Flatpak, Snap, apt ou AppImage?
Muitos programas existem em mais de um formato. Esta tabela ajuda a escolher:
| Formato | Vantagens | Desvantagens | Melhor para |
|---|---|---|---|
apt (.deb) | Integrado ao sistema, leve, testado pelo Ubuntu | Versões podem ser antigas numa LTS | Ferramentas de terminal, servidores, bibliotecas |
| Snap | Vem no Ubuntu, atualiza sozinho, isolado | Abre um pouco mais devagar na primeira vez | Apps desktop que a Canonical publica (Firefox, Chromium) |
| Flatpak | Enorme catálogo no Flathub, isolado, versões recentes | Precisa instalar; runtimes ocupam espaço | Apps desktop que não existem como snap, ou que você quer na versão mais nova |
| AppImage | Um arquivo só, roda sem instalar | Não atualiza sozinho, sem isolamento | Testar um programa rapidamente |
Tenha cada programa num formato só. Com o mesmo app instalado via apt e Flatpak, aparecem dois ícones iguais no menu e as configurações ficam em lugares diferentes.
Quando não funciona
$ flatpak run org.exemplo.Editor erro: app/org.exemplo.Editor/x86_64/master não instalado $ flatpak uninstall org.exemplo.Editor erro: Nenhuma ref instalada localizada para “org.exemplo.Editor”
O que aconteceu: o ID está errado ou o app não está instalado. Repare que o Flatpak diferencia maiúsculas: org.gimp.gimp não é org.gimp.GIMP.
Como resolver: copie o ID exato de flatpak list --app ou de flatpak search.
$ flatpak run gimp erro: ID inválido gimp: Nome deve conter pelo menos 2 pontos
O que aconteceu: você usou o nome comum do programa. O Flatpak exige o ID completo, com pelo menos dois pontos.
Como resolver: flatpak run org.gimp.GIMP.
O que aconteceu: foi a primeira instalação de Flatpak e a sessão ainda não carregou o caminho dos apps Flatpak.
Como resolver: saia da sessão e entre de novo. Enquanto isso, rode pelo terminal com flatpak run ID.
O que aconteceu: por segurança, cada Flatpak só acessa as pastas que declarou. Um app pode não ver um HD externo, por exemplo.
Como resolver: libere a pasta para aquele app:
$ flatpak override --user --filesystem=/media/ana/HD org.gimp.GIMP
Para gerenciar permissões pela interface, instale o app Flatseal (com.github.tchx84.Flatseal).
Referência
| Comando | O que faz |
|---|---|
flatpak remote-add --if-not-exists nome URL | Adiciona um repositório |
flatpak remotes | Lista os repositórios |
flatpak search termo | Procura apps |
flatpak install [remote] ID | Instala (-y sem perguntas; --user só para você) |
flatpak run ID | Abre o app |
flatpak list [--app] | Lista instalados (--app esconde runtimes) |
flatpak info ID | Detalhes de um app ou runtime |
flatpak update | Atualiza tudo |
flatpak uninstall ID | Remove (--delete-data apaga as configurações) |
flatpak uninstall --unused | Remove runtimes sem uso |
flatpak override --user --filesystem=PASTA ID | Libera uma pasta para um app |
Exercícios
1. Instalar do Flathub
Complete para instalar o OBS Studio (com.obsproject.Studio) do Flathub:
2. Só os aplicativos
Complete para listar os apps instalados, sem os runtimes:
3. Liberar espaço
Complete para remover runtimes que nenhum aplicativo usa mais:
4. Por que a primeira instalação de um Flatpak costuma ser grande?
5. O sudo apt upgrade atualiza os aplicativos Flatpak?
Resumo
- Flatpak = app + dependências, isolado. Loja principal: Flathub.
- Instalação inicial:
sudo apt install flatpak+flatpak remote-add … flathub+ sair e entrar na sessão. - Use sempre o ID do app (
org.gimp.GIMP), não o nome comum. search,install,run,list --app,update,uninstall,uninstall --unused.- Prefira um formato por programa; apt para ferramentas de terminal, Snap/Flatpak para apps desktop.