Até pouco tempo atrás, diferentes distribuições Linux usavam diferentes formatos de pacotes, geralmente incompatíveis entre si. Por exemplo, Debian e Ubuntu usam pacotes DEB; Red Hat, Fedora e openSUSE usam pacotes RPM; Arch Linux, Manjaro e Linux Kamarada usam pacotes pkg.tar.zst. Esses formatos tradicionais de empacotamento traziam alguns inconvenientes para todos – usuários, desenvolvedores de software e mantenedores de distribuições e de pacotes:
- Trabalho duplicado empacotando programas: como desenvolvedores tinham que empacotar o mesmo programa em diferentes formatos para diferentes distribuições, era comum escolher apenas uma ou algumas distribuições para suportar e ignorar todas as outras;
- Isso leva ao segundo ponto, usuário limitado às distribuições que têm aplicativos: apenas algumas distribuições tinham uma vasta gama de aplicativos empacotados para fácil instalação e uso, de modo que as distribuições que se podia considerar para uso diário eram limitadas;
- Usuário limitado aos programas já empacotados: nem todos os aplicativos estão disponíveis nativamente para todas as distribuições, se o usuário precisa de um programa que não está empacotado para a sua distribuição, precisará baixá-lo e, muitas vezes, compilá-lo manualmente;
- Pacotes antigos e desatualizados: distribuições cujo ciclo de vida é organizado em versões, que são suportadas por muito tempo (LTS, Long Term Support), geralmente oferecem versões muito antigas de aplicativos. Isso é um problema principalmente em distribuições como o openSUSE Leap ou o Debian, nem tanto em distribuições com atualizações frequentes (rolling release) como o openSUSE Tumbleweed ou o Arch Linux; e
- Dificuldade de oferecer suporte: como cada distribuição empacota os programas de um jeito, e cada distribuição tem diferentes versões dos programas e de suas dependências, os desenvolvedores não têm controle sobre o que está no computador do usuário, dificultando a solução de problemas (ou mesmo reduzir a chance que eles ocorram, em primeiro lugar).
Buscando resolver esses problemas, alguns formatos alternativos de pacotes surgiram, a exemplo do Snap, do Flatpak e do AppImage. Hoje, vamos falar do Flatpak.
O Flatpak é um gerenciador de pacotes independente de distribuição. Ele trouxe uma alternativa mais simples para instalar programas em diferentes distribuições: contanto que o Flatpak esteja instalado no sistema, o mesmo pacote Flatpak pode ser instalado em qualquer distribuição. Um pacote Flatpak contém não só o aplicativo, como também a maioria das bibliotecas das quais ele precisa para funcionar. Os aplicativos são executados pelo Flatpak em um ambiente de sandbox (“caixa de areia”) que cria um isolamento entre os aplicativos e entre estes e o sistema, aumentando a segurança como um todo.
O Flatpak foi criado originalmente por Alexander Larsson enquanto trabalhava com contêineres na Red Hat. Embora tenha recebido muitas contribuições de desenvolvedores da Red Hat e do GNOME, o Flatpak não está amarrado nem a essa distribuição, nem a essa área de trabalho, tendo sido desenvolvido como um projeto de software livre independente desde o início. Antes chamado de xdg-app, teve sua primeira versão lançada em março de 2015 e depois renomeado para Flatpak em maio de 2016. No mês seguinte, o concorrente Snap, que até então só suportava o Ubuntu, foi portado para outras distribuições.
No momento, o Flatpak é suportado por pelo menos 38 grandes distribuições.
Assim como as distribuições possuem o conceito de repositórios, o Flatpak também permite obter pacotes de um ou mais repositórios, sendo o principal deles o Flathub em flathub.org. Na terminologia do Flatpak, repositórios são chamados de remotos (remotes), de modo semelhante ao Git.
Veja a seguir como instalar e configurar o Flatpak no seu sistema, como usá-lo para instalar aplicativos e outras informações que podem ser úteis.
Como instalar e habilitar o Flatpak
Tanto o Manjaro quanto o novo Linux Kamarada baseado no Manjaro já trazem o Flatpak instalado e o Flathub pré-configurado por padrão. Se você usa uma dessas distribuições, tudo o que precisa fazer é habilitar o suporte ao Flatpak no Pamac, o que é parecido com habilitar o suporte ao AUR, que vimos no artigo anterior.
Inicie o Pamac (Adicionar/remover programas, como vimos no tutorial do Pamac), abra o menu clicando nos 3 pontos no canto superior direito da tela e, depois, clique em Preferências:
Mude para a aba Terceiros e ative as opções:
- Habilitar o suporte a Flatpak; e
- Verificar atualizações.
De volta à tela principal do Pamac, abra o menu e clique em Atualizar banco de dados:
O Pamac obterá a lista de pacotes disponíveis nos repositórios oficiais do Manjaro (e no AUR, se estiver habilitado), assim como a lista de pacotes disponíveis nos repositórios Flatpak. Depois disso, já será possível pesquisar e instalar pacotes Flatpak.
Se você usa outra distribuição, consulte como instalar o Flatpak no site do Flatpak.
De agora em diante, focarei no Manjaro e no Linux Kamarada.
Como instalar aplicativos com o Flatpak
Agora você tem tudo o que precisa para instalar aplicativos Flatpak no Linux Kamarada. E você pode fazer isso usando a interface gráfica do Pamac, o terminal e/ou o site do Flathub.
1) Usando a interface gráfica do Pamac
Você pode procurar e instalar aplicativos Flatpak usando a interface gráfica do Pamac. Para isso, abra o Pamac, pesquise e instale o aplicativo como você faria normalmente. Note as indicações de que se trata de um pacote Flatpak vindo do repositório Flathub:
2) Usando o comando flatpak no terminal
Se acostumou a usar o comando pamac para instalar programas? No caso de pacotes Flatpak, a instalação deve ser feita usando o comando flatpak.
Para procurar um aplicativo, use o comando flatpak search. Por exemplo:
1
$ flatpak search shotcut
O resultado traz, dentre outras informações, o ID de aplicativo, que é usado para as demais operações com o Flatpak. Nesse exemplo, org.shotcut.Shotcut.
Para instalar o aplicativo, use o comando flatpak install. Por exemplo:
1
$ flatpak install org.shotcut.Shotcut
Uma dica é usar o site do Flathub para pesquisar o aplicativo e copiar o comando para instalação:
Como iniciar um aplicativo Flatpak
Depois de instalado, o programa pode ser iniciado pelo menu Atividades, como de costume.
Você também pode iniciar um aplicativo Flatpak pelo terminal, usando o comando flatpak run. Por exemplo:
1
$ flatpak run com.spotify.Client
Como atualizar aplicativos Flatpak
Os aplicativos Flatpak instalados no seu computador podem ser atualizados da mesma forma que os demais aplicativos, por meio da aba Atualizações da interface gráfica do Pamac. Falaremos sobre isso oportunamente.
Você também pode atualizar todos os aplicativos Flatpak instalados pelo terminal, executando:
1
$ flatpak update
Se você quiser atualizar apenas um aplicativo, forneça seu ID ao comando flatpak update. Por exemplo:
1
$ flatpak update de.haeckerfelix.Shortwave
Como desinstalar um aplicativo Flatpak
Você pode desinstalar um aplicativo Flatpak pela interface gráfica do Pamac. Para isso, pesquise pelo aplicativo. Nessa tela, você já pode marcar o pacote para remoção, clicando no botão correspondente à direita:
Ou pode clicar no nome dele e, na tela seguinte, que mostra mais informações, clicar no botão Remover:
Você também pode desinstalar um aplicativo Flatpak pelo terminal, usando o comando flatpak uninstall. Por exemplo:
1
$ flatpak uninstall com.obsproject.Studio
Limitações
Para não dizer que só falei bem do Flatpak, listo a seguir alguns de seus problemas. Ao usar o Flatpak, esteja atento a eles:
- O Flatpak não foi projetado para ser usado em servidores, apenas em desktops Linux;
- Um pacote Flatpak, uma vez que reúne aplicativo e dependências, consome mais espaço em disco do que pacotes tradicionais; e
- Como aplicativos Flatpak são executados em ambientes isolados, isso pode limitar algumas funcionalidades de alguns aplicativos. Por exemplo, os aplicativos Flatpak podem aparecer com o tema padrão do GNOME, em vez do seu tema GTK personalizado, ou podem ter acesso a apenas algumas pastas, como Documentos e Downloads.
Conclusão
Eu acredito que a praticidade, a facilidade de usar o Flatpak e a conveniência proporcionada pela grande quantidade de aplicativos disponíveis no Flathub mais que sobressaem as limitações do Flatpak, que amplia as possibilidades dos usuários do Linux Kamarada.
Eu sugiro usar o Flatpak da mesma forma que eu uso: eu dou preferência a instalar aplicativos a partir dos repositórios da própria distribuição. Mas se um aplicativo não está nesses repositórios, ou até está, mas eu preciso de uma versão mais nova que tem no Flathub, então eu instalo esse aplicativo usando o Flatpak.
Espero que esse guia tenha sido útil. Comente se tiver dúvidas ou sugestões. Até a próxima!
Referências
Este artigo é uma versão atualizada para o Manjaro do artigo originalmente publicado em janeiro de 2022, quando o Linux Kamarada era baseado no openSUSE Leap.