Como utilizar flatpaks nas principais distros Linux

como-utilizar-flatpaks-nas-principais-distros-linux

Seja bem-vindo ao mundo dos flatpaks! Saiba de uma vez por todas o que é, quais são as vantagens, as desvantagens e como utilizar flatpaks em várias das principais distribuições Linux.

Flatpak é um formato de empacotamento e distribuição de softwares em sandbox para Linux. A ideia que deu origem ao flatpak partiu do desenvolvedor Lennart Poettering em 2013 (conforme mostrado neste artigo em inglês publicado em 2014), e foi o pontapé inicial para a criação desta tecnologia que foi lançada como parte do projeto “freedesktop.org” e inicialmente era conhecida como “xdg-app”.

O que é sandbox?

Sandbox é uma tecnologia que possibilita que aplicações sejam executadas de forma isolada do restante do sistema operacional, como se estivessem dentro da sua própria “caixa de areia”, daí o nome “sandbox”.

Quando você instala algum software no seu sistema operacional, geralmente também são instalados vários outros softwares complementares e bibliotecas (semelhante as DLL’s do Windows), que são o que chamamos de “dependências”. Quando uma aplicação é desinstalada muitas dessas dependências acabam sendo removidas junto com ela, o que pode ser um problema caso algum outro programa também precise daquela dependência para funcionar.

Por exemplo, vamos supor que os programas “X” e “Y” necessitem da dependência “Z” para funcionar. Caso tal dependência seja removida ao desinstalar o software “X”, consequentemente a aplicação “Y” também irá parar de funcionar.

utilizar-flatpaks-containers-sandbox

Esse é apenas um exemplo das vantagens que softwares que utilizam o formato de empacotamento em sandbox possuem. Cada uma das aplicações é instalada e executada dentro de um contêiner que contém além do software em si, todas as dependências que o mesmo precisa para funcionar.

Essa foi uma forma extremamente resumida de explicar o que é sandbox, sendo que seria necessário um outro artigo dedicado exclusivamente a este tipo de tecnologia para trazer uma explicação completa sobre o assunto.

Quais as vantagens de utilizar flatpaks

Além do que foi mencionado acima, utilizar flatpaks traz várias outras vantagens, como por exemplo:

  • Mais segurança contra softwares maliciosos. 

O fato das aplicações rodarem isoladas dentro de contêineres é uma camada de segurança extra, que torna muito mais difícil que os softwares possam executar ações maliciosas dentro do seu sistema. 

  • Mais estabilidade.

Ao instalar e remover aplicações em flatpak você não corre o risco de “quebrar” o funcionamento de outros softwares, ou até mesmo do sistema operacional no processo.

  • Utilizar softwares mais recentes em sistemas mais “conservadores” sem pôr em risco a estabilidade.

Alguns sistemas como o Debian, OpenSUSE Leap e as versões LTS do Ubuntu possuem um foco maior em estabilidade e longevidade do sistema. Tal foco pode ter um ponto negativo para muitos usuários, já que estes sistemas geralmente não possuem nos seus repositórios softwares nas versões mais recentes.

flathub-a-loja-dos-flatpaks
Flathub – a loja dos flatpaks.

Ao utilizar flatpaks geralmente você tem acesso à programas em versões muito mais recentes do que os presentes nos repositórios destas distros, e por rodarem isoladas do restante do sistema não oferecem nenhum risco de instabilidade. Isso possibilita aos usuários utilizarem aplicações recentes, até mesmo em fase beta, em sistemas mais conservadores e focados em estabilidade.

  • Gerenciamento de permissões facilitado.

Sabe quando você instala ou acessa pela primeira vez um aplicativo no Android e o sistema pede para que você conceda uma série de permissões para aquele app? Ao utilizar flatpaks você tem a sua disposição um sistema bastante similar.

Os softwares instalados via flatpak não pedirão permissões durante a instalação ou inicialização do programa, mas todas essas autorizações podem ser gerenciadas facilmente através do Flatseal. Um software sobre o qual já falamos neste artigo.

Onde posso encontrar softwares em flatpak?

flatpak é apenas o formato de empacotamento, mas para que possamos utilizar os softwares neste formato precisamos saber onde encontrá-los. Então, como os flatpaks são distribuídos para os usuários?

As aplicações em flatpak são distribuídas através de repositórios, semelhantes aqueles que são padrão nas distribuições Linux e permitem aos usuários instalar softwares através do terminal ou lojas de aplicativos. Algumas distribuições como o Fedora e o EndlessOS possuem os seus próprios repositórios flatpak, porém nenhum deles é tão completo quanto o Flathub.

O Flathub é um site no estilo loja, e é de longe o maior repositório de flatpaks disponível atualmente. Nele podemos encontrar programas famosos como: Firefox, Steam, Spotify, VLC, Gimp, Inkscape, Kdenlive, entre muitos outros.

Para utilizar flatpaks no Linux precisamos basicamente de duas coisas: instalar o pacote “flatpak” e ativar o(s) repositório(s) desejado(s). Algumas distros já vêm com o flatpak instalado por padrão, enquanto outras trazem até mesmo o Flathub ativado “de fábrica”.

A tabela abaixo mostra uma lista com várias das distribuições Linux mais utilizadas, identificando quais delas possuem o flatpak disponível para instalação ou já instalado por padrão, e se possuem o repositório Flathub pré ativado.

tabela-do-suporte-a-flatpak-pelas-distros

Como instalar o flatpak com suporte ao Flathub nas principais distros Linux

Para utilizar flatpaks no Debian, Ubuntu na versão 18.10 ou superior, bem como nos sistemas nele baseados basta rodar o comando abaixo no seu terminal:

sudo apt install flatpak

Para utilizar flatpaks no Solus OS cole o seguinte comando no seu terminal:

sudo eopkg install flatpak xdg-desktop-portal-gtk

Para ativar o suporte ao Flathub em qualquer distro Linux utilize o comando a seguir.

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Como utilizar flatpaks através da interface gráfica

Caso você utilize o EndlessOS, Linux Mint, Manjaro ou Pop!_OS, utilizar flatpaks com o Flathub já é possível por padrão, e de forma integrada às lojas de aplicativos.

Para outras distros podemos utilizar a GNOME Software, que pode ter essa funcionalidade ativada através de um plugin. Caso a distro que você utiliza não possua a GNOME Software instalada por padrão, você pode fazê-lo através dos comandos a seguir.

Importante: A partir da versão 20.04 o Ubuntu traz a Snap Store como sendo a nova versão da Ubuntu Software, que por sua vez não tem suporte a flatpaks. Ao instalar a GNOME Software você ficará com duas lojas de aplicativos no sistema, sendo elas a Ubuntu Software (Sem suporte a flatpaks) e a GNOME Software (com suporte a flatpaks).

Debian e derivados do Ubuntu:

sudo apt install gnome-software

Arch Linux e derivados:

sudo pacman -S gnome-software

Fedora:

sudo dnf install gnome-software

OpenSUSE e derivados:

sudo zypper install gnome-software

Para ativar a integração com o flatpaks abra a GNOME Software, conforme mostrado na imagem abaixo clique na aba “Instalados”, procure por “Programas” ou “Softwares” (o ícone pode variar de acordo com a distro), clique nela e em seguida marque a caixa de seleção “Suporte a flatpak”.

utilizar-flatpaks-atraves-da-gnome-software-1
Encontrando a página da GNOME Software dentro da própria GNOME Software.
utilizar-flatpaks-atraves-da-gnome-software-1
Marcar a caixa de seleção “Suporte a flatpak”.

Pronto! Agora os você já pode gerenciar os seus flatpaks diretamente pela loja de aplicativos!

Como utilizar flatpaks através do terminal

Uma vez que você já tenha instalado o flatpak e ativado o suporte ao Flathub todos os procedimentos podem ser executados diretamente pelo terminal.

utilizar-flatpaks-pelo-terminal-flathub

Para instalar aplicações acesse o site do Flathub, pesquise pelo app desejado, role a página até encontrar o campo “Install” e clique no botão de copiar.

utilizar-flatpaks-pelo-terminal-flathub-2

Por fim, basta colar o comando no seu terminal, pressionar “Enter” e confirmar a instalação pressionando “Y” seguido por “Enter” sempre que for solicitado.

Mais alguns comandos básicos do flatpak

Para listar todos os flatpaks que estão instalados no seu sistema:

flatpak list
listando-flatpaks-instalados

Agora que você já aprendeu a consultar os nomes dos pacotes instalados, utilize esse nome para desinstalar o pacote desejado. O exemplo abaixo é o comando para remover o Spotify, utilizando o nome do pacote mostrado com o “flatpak list” conforme a imagem acima.

flatpak remove com.spotify.Client

Para atualizar todos os flatpaks instalados no seu sistema utilize:

flatpak update

Softwares instalados neste formato normalmente criam um ícone de atalho no seu menu de aplicativos, porém, caso você queira executá-los pelo terminal basta utilizar o comando “flatpak run nomedoapp”. Conforme demonstrado no comando abaixo utilizando o Spotify como exemplo:

flatpak run com.spotify.Client

O comando a seguir lista todos os repositórios flatpak que estão instalados no seu sistema.

flatpak remotes
listando-repositórios-flatpak

Para remover um repositório juntamente com todos os softwares provindos dele que você tenha instalado você pode utilizar:

flatpak remote-delete nomedorepositório

O nome do repositório pode ser consultado com o “flatpak remotes” mostrado anteriormente.

Um ponto negativo, só que não

O tamanho dos softwares empacotados em Flatpak e o espaço em disco que eles ocupam é visto por muitos como um ponto negativo de se utilizar flatpaks. Ao instalar um programa em flatpak pela primeira vez é comum que mesmo softwares mais simples possuam downloads de 600MB, 800MB, 1GB ou até mais.

Isso ocorre porque conforme mencionamos anteriormente os softwares em flatpak contém junto consigo todas as dependências que os mesmos precisam para funcionar. Dependências essas que são chamadas de “runtimes”.

Ao fazer o download de um flatpak você também está baixando todas as “runtimes” que o mesmo precisa para funcionar, porém, elas não serão baixadas novamente quando você instalar um outro software que tenha as mesmas “runtimes” como dependência.

Isso porque os flatpaks compartilham arquivos entre si. Cada vez que você instala um novo flatpak são baixados apenas arquivos que não existem no seu sistema, assim uma dependência/runtime será baixada apenas uma vez independente de quantos softwares a utilizem.

Partindo para um exemplo prático, possuo um total de 31 flatpak’s instalados no meu sistema. Incluindo programas e runtimes. Alguns dos programas são: OBS Studio, Kdenlive, HandBrake, Spotify, Slack, entre outros. Todas essas aplicações juntamente com as suas dependências ocupam um total de 5.8GB.

Com isso podemos ver que até mesmo usuários que possuem SSD’s de menor porte, como os de 120GB ou 240GB podem utilizar aplicações em flatpak sem maiores problemas. Por mais que softwares instalados através dos “métodos convencionais” possam utilizar menos espaço, na maioria dos casos não é uma diferença prejudicial ao usuário.

Você já conhecia ou já utiliza aplicações em flatpak? O que você pensa sobre esta tecnologia? Conte mais nos comentários abaixo!

Isso é tudo pessoal! 😉

Talvez Você Também Goste
aplicativos desktop
Continue lendo

Crie webapps com o Nativefier

Já falamos aqui no Diolinux algumas vezes sobre webapps, como o Ice para Ubuntu e Mint e o Tangram. Desta vez, iremos te apresentar o Nativefier, uma ferramenta de linha de comando para transformar qualquer website em um aplicativo desktop.