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.

Você vai aprender
  • 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

TermoO que éExemplo
AplicativoO programa em si, identificado por um ID em formato de "domínio ao contrário"org.gimp.GIMP, com.spotify.Client
RuntimeUm pacote de bibliotecas compartilhado por vários aplicativos (ex.: tudo o que apps GNOME precisam). É baixado uma vez e reaproveitadoorg.gnome.Platform
RemoteO nome que o Flatpak dá a um repositório de onde baixa appsflathub

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ó)

  1. Instalar o programa flatpak com o apt.
    $ sudo apt install flatpak
  2. 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
  3. Sair e entrar de novo na sessão, para os aplicativos aparecerem no menu.
E na Central de Aplicativos?

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.

Sem perguntas

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 usarTodos os usuáriosSó você
Onde fica/var/lib/flatpak~/.local/share/flatpak
Pede senhaSimNã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:

FormatoVantagensDesvantagensMelhor para
apt (.deb)Integrado ao sistema, leve, testado pelo UbuntuVersões podem ser antigas numa LTSFerramentas de terminal, servidores, bibliotecas
SnapVem no Ubuntu, atualiza sozinho, isoladoAbre um pouco mais devagar na primeira vezApps desktop que a Canonical publica (Firefox, Chromium)
FlatpakEnorme catálogo no Flathub, isolado, versões recentesPrecisa instalar; runtimes ocupam espaçoApps desktop que não existem como snap, ou que você quer na versão mais nova
AppImageUm arquivo só, roda sem instalarNão atualiza sozinho, sem isolamentoTestar um programa rapidamente
Evite duplicar

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

"não instalado" ao rodar ou remover
$ 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.

"ID inválido"
$ 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 app não aparece no menu

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 app não enxerga uma pasta

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

ComandoO que faz
flatpak remote-add --if-not-exists nome URLAdiciona um repositório
flatpak remotesLista os repositórios
flatpak search termoProcura apps
flatpak install [remote] IDInstala (-y sem perguntas; --user só para você)
flatpak run IDAbre o app
flatpak list [--app]Lista instalados (--app esconde runtimes)
flatpak info IDDetalhes de um app ou runtime
flatpak updateAtualiza tudo
flatpak uninstall IDRemove (--delete-data apaga as configurações)
flatpak uninstall --unusedRemove runtimes sem uso
flatpak override --user --filesystem=PASTA IDLibera uma pasta para um app

Exercícios

1. Instalar do Flathub

Complete para instalar o OBS Studio (com.obsproject.Studio) do Flathub:

flatpak flathub com.obsproject.Studio

2. Só os aplicativos

Complete para listar os apps instalados, sem os runtimes:

flatpak list

3. Liberar espaço

Complete para remover runtimes que nenhum aplicativo usa mais:

flatpak uninstall

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.