Flatpak é uma tecnologia de empacotamento de aplicativos que permite instalar e executar aplicativos Linux em diferentes distribuições sem precisar se preocupar com dependências e versões de bibliotecas.
Aqui temos algumas palavras chaves e importantes: “instalar” e “sem precisar se preocupar com dependências”. Esse é o principal ponto forte das instalações via flatpak e nisso devemos nos concentrar ao procurarmos entender sobre flatpak.
Segundo o site flatpak.org,
Flatpak é uma estrutura para distribuição de aplicativos de desktop em várias distribuições do Linux. Ele foi criado por desenvolvedores com um longo histórico de trabalho no desktop Linux e é executado como um projeto de código aberto independente.
O Flatpak pode ser usado por todos os tipos de aplicativos de desktop e visa ser o mais agnóstico possível em relação à forma como os aplicativos são criados. Não há requisitos sobre quais linguagens de programação, ferramentas de construção, kits de ferramentas ou estruturas podem ser usadas.
Razões para Usar Flatpak
Flatpak tem algumas vantagens importantes sobre a maioria dos gerenciadores de pacotes do sistema:
- Universalidade : Flatpak permite que aplicativos sejam instalados e executados em praticamente qualquer distribuição Linux. Isso inclui distribuições não-GNU, distribuições sem systemd, distribuições com um sistema operacional (SO) somente leitura e várias arquiteturas sem que o desenvolvedor precise do hardware relevante disponível.
- Espaço para inovações : Flatpak facilita os mantenedores de distribuição a se concentrarem em seus objetivos para inovar sua distribuição.
- Estabilidade : a quebra em um aplicativo Flatpak não corre o risco de quebrar o sistema. Isso ocorre porque os aplicativos e tempos de execução do Flatpak são contidos para não interferir totalmente no sistema.
- Instalação sem raiz : privilégios elevados não são necessários ao instalar um aplicativo Flatpak ou um tempo de execução.
- Aplicativos em área restrita : um dos principais objetivos do Flatpak é aumentar a segurança dos sistemas de desktop isolando os aplicativos uns dos outros. Isso é obtido usando sandboxing e significa que, por padrão, os aplicativos executados com Flatpak têm acesso limitado ao ambiente do host.
O Flatpak tem algumas vantagens importantes sobre outras abordagens universais para distribuição de aplicativos no Linux:
- Descentralizado por design : embora o Flatpak forneça um serviço centralizado para distribuição de aplicativos, ele também permite hospedagem e distribuição descentralizadas, para que os desenvolvedores de aplicativos ou downstreams possam hospedar seus próprios aplicativos e repositórios de aplicativos.
- Integração de desktop : Flatpak também oferece integração nativa para os principais desktops Linux, para que os usuários possam facilmente navegar, instalar, executar e usar aplicativos Flatpak por meio de seu ambiente de desktop e ferramentas existentes.
- Eficiência de espaço : Flatpak desduplica bibliotecas e outros arquivos usados por vários aplicativos para economizar megabytes ou mesmo gigabytes de armazenamento, dependendo da quantidade de aplicativos instalados.
- Atualizações delta : apenas os arquivos alterados são baixados para atualizações.
Outros benefícios para os desenvolvedores incluem:
- Compatibilidade futura : o mesmo aplicativo Flatpak pode ser executado em diferentes versões da mesma distribuição, incluindo versões que ainda não foram lançadas. Isso não requer nenhuma alteração ou gerenciamento por parte dos desenvolvedores de aplicativos.
- Agrupamento : permite que os desenvolvedores de aplicativos enviem praticamente qualquer dependência ou biblioteca como parte de seu aplicativo. Isso dá controle total sobre qual software é usado para criar aplicativos.
- Ambientes de aplicativos consistentes : como são os mesmos em todos os dispositivos, os aplicativos funcionam conforme o esperado. Isso também facilita a identificação de bugs e a realização de testes.
- Ramos : isso permite que os desenvolvedores enviem aplicativos de diferentes ramos, por exemplo
stable
,beta
, , etc., mantendo o mesmo nome. - Plataformas mantidas : chamadas de tempos de execução, contêm coleções de dependências, que podem ser usadas por aplicativos e que podem exigir muito do trabalho do desenvolvimento de aplicativos.
Por que o nome Flatpak?
Procure pela empresa IKEA na internet e aqui começaremos a entender a origem do nome Flatpak. Verá que a empresa IKEA tem uma linha de móveis chamada “Flatpack” (ou “Móveis Prontos para Montar”), que são projetados para serem facilmente montados pelo próprio cliente, sem a necessidade de contratar um profissional ou possuir habilidades avançadas em montagem de móveis.
A IKEA é uma marca mundialmente conhecida cujo sucesso foi parcialmente construído por ter desenvolvido e refinado a ideia de flatpacking de seus móveis, o que lhes permitiu enormes economias de custos e eficiências em comparação com seus concorrentes. Então, quando foi preciso um novo nome para a tecnologia de embalagem, ou empacotamento, que havia sido desenvolvida por Alex Larsson, um sueco nativo, foi percebido que Flatpak seria um bom jogo de combinação e homenagearia o sucesso da IKEA e, ao mesmo tempo, enviaria um forte sinal sobre o quão revolucionário pensamos que esta nova tecnologia de empacotamento poderia ser para o desktop Linux.
O nome “Flatpak” é uma combinação das palavras “flat” (plano, semelhante a uma superfície plana) e “pack” (empacotar), referindo-se ao formato de empacotamento de aplicativos utilizado pela tecnologia.
Flatpak é Próprio para Linux
Flatpak é feito para Linux e explicitamente usa muitos recursos do kernel linux (bind mounts, namespaces, seccomp, etc) para criar a caixa de proteção(sandbox) na qual os aplicativos Flatpak estão sendo executados. Pode ser possível usar tecnologias equivalentes em outros kernels, mas isso não seria quantidade trivial de trabalho, e não consideramos esta uma das nossas prioridades.
Embora o Flatpak seja executado apenas no Linux, ele pode ser usado por aplicativos direcionados a outros sistemas operacionais, bem como àqueles específicos do Linux. Os aplicativos podem ser de código aberto ou proprietários (embora alguns serviços de distribuição, como o Flathub, possam ter restrições a esse respeito).
Posso Usar Flatpak em Servidores?
O Flatpak foi projetado para rodar dentro de uma sessão de desktop e depende de certos serviços de sessão, como um barramento de sessão D-Bus e, opcionalmente, uma instância systemd –user. Isso faz com que o Flatpak não seja uma boa combinação para um servidor.
Comment on “Linux: O que é Flatpak?”