Recentemente, a Canonical anunciou que o formato snap pode se tornar universal para todas as distribuições. O snap é um novo tipo de pacotes que nos permite instalar programas de maneira muito simples, sem ter de procurar as dependências. Esses formatos, originalmente voltados para o Ubuntu, estão ganhando espaço no universo Linux. Contudo, o Flatpak – novo sistema de empacotamento e implantação de aplicativos desktop para Linux – pode se tornar o padrão mais popular por conta da sua abordagem; “segurança em primeiro lugar”. Em resumo, o Flatpak permite instalar as aplicações no sistema Linux, incluindo todas as bibliotecas necessárias (resolvendo problemas de dependências), de forma isolada do sistema e com tamanho reduzido, comparado ao snap.
Contextualizando
O histórico de desenvolvimento e divulgação de aplicações nos sistemas Linux está sendo amplamente discutido. A criação dos gerenciadores de pacotes (APT e DNF, por exemplo) estão entrando em choque com as novas propostas de empacatomanto de aplicações Linux, vide snap, Flatpak e AppImage.
Para os idealizadores desses projetos, o cenário atual das aplicações Linux é problemático e afeta a flexibilidade de uso e desenvolvimento; já que para cada distro ou sistema Linux é preciso configurar bibliotecas e componentes peculiares para fazê-la funcionar. Além disso, eles consideram uma desvantagem o fato de que todo software a ser instalado requer uma conexão com à internet – pois no caso de um PC sem esse acesso, o processo de instalação fica dificultado.
AppImage – ferramenta que permite executar aplicações Linux independente da distribuição usada
Pacotes snap, do Ubuntu, podem se tornar formato universal para todas as distribuições Linux
Por exemplo: caso não use uma distro Linux LTS, você estará limitado a usar a versão mais nova da aplicação oferecida naquele repositório da versão usada – muitas das vezes desatualizada. E, se caso queira usar a mesma aplicação em distros diferentes, será precisa baixá-la do repositório oficial de cada uma delas; e isso não garante que será usada a mesma versão. Em outras palavras, quando se desenvolve uma aplicação para Linux é colocado na pauta em qual distro esse programa irá rodar; e não é visado o Linux como um todo – “desenvolvendo aplicação para Fedora 19 e 20; e não para o Linux…” – Linus Torvalds.
Assim, o objetivo principal, em comum, desses projetos (snap, AppImage e Flatpak) é oferecer flexibilidade e dinamismo na distribuição de softwares no Linux. Gerenciadores de pacotes, como APT e DNF, instalam formatos empacotados (.deb, por exemplo) que dependem de diversos outros pacotes, bem como bibliotecas. O formato Flatpak (e os outros), contém todos os arquivos necessários, onde os pacotes .deb (por exemplo) não englobam todas as dependências para os outros pacotes. Consequentemente, o formato Flatapk conterá arquivos de instalação maiores. Por outro lado, você não terá problema se remover uma aplicação no formato Flatapk; pois nenhum outro será afetado por dependências, por exemplo.
Flatpak
O Flatpak é ideia de Alexander Larsson, principal engenheiro de software da Red Hat. Larsson tem trabalhado em ambiente desktop Linux durante 18 anos. Além disso, possui uma experiência considerável na área de empacotamento de aplicativos.
O Flatpak, conhecido, anteriormente durante seu desenvolvimento, como xdg-app, fornece a capacidade de um aplicativo – empacotado nesse formato – ser instalado e executado com facilidade; e de forma consistente em muitas distribuições Linux diferentes. Além da segurança inerente ao formato, o formato Flatpak tem a capacidade de oferecer isolamento do sistema operacional e de outras aplicações; garantindo maior segurança.
Ele permite criar um aplicativo (empacotar) uma vez e depois implantá-lo em todas as distribuições Linux. Ele usa tecnologias semelhantes aos containers em ambientes servidor, mas com foco no ambiente desktop. Essa arquitetura permite executar aplicações Linux independente da distribuição usada.Em outras palavras, você poderá usar um programa no Fedora e no Ubuntu a partir de um mesmo arquivo – sem a necessidade de instalação de bibliotecas compartilhadas ou complementos peculiares de cada sistema.
Endless OS – sistema operacional baseado em Linux com foco na inclusão digital
Para tornar isso possível, a tecnologia usada por atrás do snap e Flatpak é similar ao que chamamos de containers (“recipientes”) no mundo Linux para servidores – vide Docker. Assim, o objetivo é fazer com que aplicações Linux se tornem universal nas mais variadas distribuições Linux. E, obviamente, torná-las mais seguras!
Em resumo, tecnicamente, o Flatpak faz uso do OSTree, que pode ser descrito como “GIT para grandes binários”. Isto fornece grande parte das funcionalidades para hospedar os repositórios de software. Tornando o Flatpak extremamente eficiente, pois aplicações e bibliotecas que são instalados são deduplicadas, economizando espaço em disco. Um dos aspectos que fazem com que o Flatpak ocupe menos espaço do que o snap 😉
Já para garantir o isolamento (“sandboxing”), o Flatpak faz uso do utilitário Bubblewrap, bem como várias características do kernel do Linux (como cgroups e namespaces), o que ajuda a torná-lo “portátil” para diversas distribuições Linux.
Uma gama crescente de aplicações já estão disponíveis no formaro Flatpak, bem como LibreOffice, GIMP, Inkscape, MyPaint, Darktable, e um grande número de aplicações compatíveis com o GNOME. Além disso, o Flatpak é compatível com as normas, oferecendo suporte para a especificação Open Initiative Container.
Anúncio Oficial – “Build once, run anywhere”
Estocolmo, Suécia, em 21 de junho de 2016; a equipe de desenvolvimento do Flatpak anunciou oficialmente seu framework de aplicações desktop para Linux. O Flatpak está disponível nas principais distribuições Linux.
Como o snap, do Ubuntu, os desenvolvedores do Flatpak estão otimistas quanto ao rumo das aplicações Linux, que podem se tornar o novo formato de empacotamento para as aplicações Linux.
Foco na Segurança
“Aplicativos Flatpak estão em área restrita (‘sandboxing’). Com esse isolamento, as únicas coisas que o aplicativo pode ‘ver’ são seus próprios arquivos e um conjunto limitado de bibliotecas e interfaces do sistema operacional. Isso efetivamente isola aplicativos uns dos outros, bem como do sistema host e torna muito mais difícil para aplicações de roubar dados do usuário ou explorar um ao outro “, disse no anúncio.
O sistema de janelas X11, amplamente utilizado, ainda é “inerentemente inseguro”, limitando a capacidade de aplicações sandbox na maioria dos sistemas atuais; destacado no anúncio. Mas isso tende a mudar! Por enquanto, o Flatpak funciona em sistemas que utilizam o X11.
Entretanto, o surgimento de um novo servidor gráfico, chamado Wayland, abre caminho para um modelo de segurança muito mais completo para as distribuições Linux! No Ubuntu, os problemas de segurança do X11 devem ser resolvidos pela adoção do servidor gráfico, em desenvolvimento, chamado Mir. O snap pode ser executado em ambos, Mir e X11, mas vai ter mais segurança quando usado sobre o Mir.
Além do mais, conforme nota do site Arstechnica.com, aplicativos Flatpak também não podem “ver” arquivos, processos e dispositivos de hardware do sistema hospedeiro (“host”). Opcionalmente, eles podem ser impedidos de acesso à rede.
Mais detalhes técnicos sobre a segurança do Flatpak estão disponíveis aqui.
Apoio da comunidade
A Comunidade Fedora está fazendo planos em torno do Flatpak. Com o lançamento da versão 24 – recentemente divulgada – o Fedora oferece suporte padrão ao Flatpak.
“A equipe Fedora Workstation está muito animada sobre o Flatpak e as perspectivas que ele traz para tornar o desktop Linux mais fácil de desenvolver. Pretendemos continuar a apoiar este projeto e ajudar a difundi-lo para um público maior.” – anúncio oficial do Flatpak
Endless OS – sistema operacional baseado em Linux com foco na inclusão digital
Há também o interesse de outras partes. Um dos primeiros a adotar o Flatpak foi o Endless Computers – empresa criadora do sistema Endless OS que busca alcançar pessoas localizadas em zonas remotas onde o acesso à informação é restrito.
Uma razão para o interesse crescente no Flatpak é devido à sua capacidade de adaptação e o fato de que é um projeto genuinamente robusto. Ele pode ser usado e adaptado conforme necessidades. O projeto está hospedado em Freedesktop.org e no Github, e é licenciado sob a LGPL.
Considerações
Mesmo com esse projeto, espera-se que os pacotes binários tradicionais continuem existindo e, claro, a capacidade de compilar diretamente das fontes de software também. Embora, inevitavelmente, possa ser substituído gradualmente.
Em comparação ao snap, o Flatpak parece mais voltado para a comunidade. Pois, começou como um projeto do Gnome impulsionado, principalmente, pelos desenvolvedores da Red Hat. E, também está se expandindo para outros ambientes de trabalho, bem como KDE e várias distribuições Linux.
Mesmo com suporte em diversas distros: Fedora, Debian, Arch, Mageia e Ubuntu, o Flatpak, provavelmente, não será tão absorvida no Arch Linux, Gentoo ou Slackware; já que a quantidade de softwares disponíveis são sempre entregues com as mais recentes versões e que a filosofia desses sistemas é priorizar a compilação a partir do fonte. Mas, em outras distribuições, com ciclo regular; bem como Ubuntu, openSUSE Leap, Debian, pode ser uma boa oportunidade para ter acesso a versão do software mais recente 😉
Uma desvantagem do Flatpak é que ele precisa do GNOME ou KDE para ser executado, e potencialmente alguns outros componentes, para que possam trabalhar em uma determinada distro Linux. Na sua essência, os apctes Flatpak não são tão “universal” (como ter suporte a tantas plataformas Linux, por padrão) como são os snaps.
Por fim, independentemente de qualquer situação, a “batalha” pelo empacotamento universal de aplicações Linux está apenas começando 😉