Pesquisa de site

3 melhores gerenciadores de pacotes universais para Linux em 2023


O gerenciamento de pacotes ou instalação de software em sistemas Linux pode ser muito intrigante, especialmente para iniciantes (novos usuários do Linux), já que diferentes distribuições Linux usam diferentes sistemas tradicionais de gerenciamento de pacotes. A parte mais confusa de tudo isso, na maioria dos casos, é a resolução/gerenciamento de dependências de pacotes.

Por exemplo, distribuições baseadas em Debian como Ubuntu e Linux Mint utilizam pacotes .deb, que são gerenciados através do sistema de gerenciamento de pacotes dpkg.

Por outro lado, distribuições baseadas em RHEL, como CentOS Stream, Rocky Linux e AlmaLinux usam .rpm pacotes, que são gerenciados usando o sistema de gerenciamento de pacotes rpm.

Nos últimos anos, o gerenciamento e a distribuição de pacotes no ecossistema Linux nunca mais foram os mesmos após o surgimento das ferramentas de gerenciamento de pacotes universais ou de distribuição cruzada.

Essas ferramentas permitem que os desenvolvedores empacotem seus softwares ou aplicativos para diversas distribuições Linux, a partir de uma única compilação, facilitando aos usuários a instalação do mesmo pacote em diversas distribuições suportadas.

Neste artigo, revisaremos os três principais sistemas de gerenciamento de pacotes universais ou de distribuição cruzada de código aberto para Linux.

1. Snap – um formato de pacote universal

Snap é um popular formato de aplicativo/pacote de código aberto e sistema de gerenciamento de pacotes desenvolvido pela Canonical, criadora do Ubuntu Linux. Várias distribuições Linux agora suportam snaps, incluindo Ubuntu, Debian, Fedora, Arch Linux, Manjaro forte> e CentOS/RHEL.

Fácil instalação e atualizações

Um aplicativo snap é um aplicativo de distribuição cruzada empacotado com todas as suas dependências (livre de dependências) para fácil instalação com atualizações automáticas (os aplicativos estão sempre atualizados) em qualquer distribuição Linux que suporte snaps. Um piscar de olhos pode ser executado em um desktop, servidor, nuvem ou IoT (Internet das Coisas).

Para criar ou ajustar um aplicativo, você usa o Snapcraft, uma estrutura e uma poderosa ferramenta de linha de comando para criar snaps. Para instalar e usar snaps no Linux, é necessário instalar o snapd (ou o snappy daemon), um serviço de segundo plano que permite que os sistemas Linux funcionem com arquivos .snap. A instalação real dos snaps é feita usando a ferramenta de linha de comando snap.

Segurança e Isolamento

Como funcionam sob confinamento (níveis de confinamento diferentes e configuráveis), os snaps são seguros por padrão. É importante ressaltar que um snap que precisa acessar um recurso do sistema fora de seu confinamento emprega uma “interface” que é cuidadosamente selecionada pelo criador do snap, com base nos requisitos do snap. Isso permite executar aplicativos sem comprometer a estabilidade e flexibilidade do sistema operacional básico.

Além disso, o sistema de gerenciamento de pacotes snap usa um conceito chamado canais (que consiste e é subdividido por faixas, níveis de risco e ramificações) para determinar qual versão de um snap é instalada e rastreada para atualizações. Os Snaps também são atualizados automaticamente, um processo que você pode gerenciar manualmente.

Para encontrar e instalar um snap, procure-o na loja de snaps (um lugar onde os desenvolvedores podem compartilhar seus snaps) ou leia mais sobre ele usando nossos guias:

2. Flatpak – Compatibilidade de distribuição cruzada

Flatpak é uma estrutura de código aberto bem conhecida para distribuição de aplicativos de desktop em distribuições Linux. Desenvolvido por uma comunidade independente, o Flatpak permite que um único aplicativo seja instalado e executado em praticamente qualquer distribuição Linux.

Suporta um total de 25 distribuições, incluindo Fedora, Ubuntu, RHEL, CentOS, OpenSUSE e Arch Linux, e também roda em Raspberry Pi.

Os tempos de execução do Flatpak fornecem plataformas de bibliotecas comuns que um aplicativo pode aproveitar. No entanto, também torna extremamente fácil ter controle total sobre as dependências, você pode agrupar suas bibliotecas como parte de seu aplicativo.

O Flatpak vem com ferramentas de construção fáceis de usar e oferece um ambiente consistente (igual em todos os dispositivos e semelhante ao que os usuários já possuem) para os desenvolvedores criarem e testarem seus aplicativos.

Sandboxing para segurança aprimorada

Flatpak torna as coisas seguras colocando cada aplicativo em sua sandbox, dessa forma, os aplicativos não podem mexer no sistema principal ou em outros aplicativos. É muito útil quando você lida com aplicativos de fontes sobre as quais não tem certeza.

Amigável ao usuário e ao desenvolvedor

Um aspecto útil do flatpak é a compatibilidade futura, onde o mesmo flatpak pode ser executado em diferentes versões da mesma distribuição, incluindo versões ainda a serem lançadas por quais desenvolvedores. Ele também se esforça e continua a ser compatível com novas versões de distribuições Linux.

Se você é desenvolvedor, pode disponibilizar seu aplicativo para usuários Linux através do Flathub, um serviço centralizado de distribuição de aplicativos em todas as distribuições.

3. AppImage: a alternativa portátil

AppImage também é um formato de pacote de código aberto que permite aos desenvolvedores empacotar um aplicativo uma vez, que é executado em todas as principais distribuições de desktop Linux. Ao contrário dos formatos de pacote anteriores, com AppImage não há necessidade de instalar um pacote. Basta baixar o aplicativo que você pretende usar, torná-lo executável e executá-lo – é simples assim. Ele suporta a maioria dos desktops Linux de 32 e 64 bits.

Nenhuma instalação necessária

Com AppImage, não há necessidade de instalar nada. Você pode colocar esses pacotes em uma unidade USB, compartilhá-los e executar aplicativos sem alterar o sistema. Isso é ótimo para Linux portátil e sistemas live.

Ampla compatibilidade

AppImage traz muitas vantagens. Para os desenvolvedores, permite que eles alcancem o maior número possível de usuários, independentemente da distribuição e versão do Linux que os usuários estejam executando. Os usuários não precisam se preocupar com as dependências do aplicativo, pois cada AppImage vem junto com todas as suas dependências (um aplicativo=um arquivo). Experimentar novas versões de aplicativos também é fácil com AppImage.

Para administradores de sistema que oferecem suporte a um grande número de sistemas de desktop e normalmente impedem que os usuários instalem aplicativos que possam quebrar os sistemas, eles não precisam mais se preocupar. Com o AppImage, o sistema permanece intacto, pois os usuários não precisam instalar aplicativos para executá-los.

Comparando o trio: Snap, Flatpak e AppImage

Aqui está uma comparação dos três gerenciadores de pacotes universais:

Feature Snap Flatpak AppImage
Package format Self-contained, compressed file Self-contained, compressed file Single executable file
Sandboxing Yes (by default) No (by default) No
Automatic updates Yes Optional No
Installation Requires snapd daemon Requires Flatpak runtime Does not require installation
Root privileges Requires root privileges to install Does not require root privileges to install Does not require root privileges to run

Qual gerenciador de pacotes devo escolher?

Se você está procurando um gerenciador de pacotes seguro e fácil de usar, com atualizações automáticas, o Snap é uma boa escolha. Se você está procurando um gerenciador de pacotes mais flexível que possa ser usado para empacotar qualquer tipo de aplicativo, então o Flatpak é uma boa escolha. Se você está procurando um gerenciador de pacotes que não requer instalação ou privilégios de root, então AppImage é uma boa escolha.

Também é importante observar que todos os três gerenciadores de pacotes ainda estão em desenvolvimento, portanto pode haver alguns bugs ou recursos ausentes. No entanto, todos eles são mantidos ativamente e atualizados regularmente.

Conclusão

Os formatos de pacotes universais ou de distribuição cruzada são as tecnologias de próxima geração para construção e distribuição de software no ecossistema Linux. No entanto, os sistemas tradicionais de gerenciamento de pacotes ainda se mantêm firmes.

Qual é a sua opinião? Compartilhe conosco através da seção de comentários.