Às vezes, nada na vida está tão ruim que não possa piorar! Incluive no mundo maravilhoso do pinguim. E um caso típico são os gerenciadores de pacotes e afins. Uma bagunça geral, trabalhos que se sobrepõem e que nem sempre significam algo para o usuário “comum”.
Então, quantos existem? Depende do que chamamos de “gerenciador de pacotes”. Considerando os “tradicionais”, existem aproximadamente 15 a 20 principais. Se incluirmos também front-ends e ferramentas auxiliares, esse número facilmente ultrapassa 30.
Se levarmos em conta os formatos e sistemas de distribuição universais, como Flatpak, Snap e AppImage, a aumenta ainda mais. Se incluirmos os ecossistemas de linguagens de programação, como pip, npm, gem e composer, a lista se torna enorme, embora essas ferramentas não sejam propriamente gerenciadores de pacotes.
Há ainda uma distinção importante: o AppImage nem sequer é propriamente um gerenciador de pacotes, mas principalmente um formato para distribuição de aplicativos portáteis.
A forma mais útil de entender o ecossistema é não considerar apt, dpkg, rpm, Flatpak, Snap e GDebi como equivalentes, porque alguns são gerenciadores de pacotes, outros são ferramentas de baixo nível, front-ends, formatos ou sistemas de distribuição de aplicativos.
1. Família Debian
Distribuições como Debian, Ubuntu, Linux Mint, Pop!_OS e várias outras utilizam o formato .deb. O dpkg é a ferramenta de baixo nível, enquanto o APT trabalha em um nível superior, incluindo repositórios e resolução de dependências.
| Ferramenta | Função | Formato |
|---|---|---|
| dpkg | Gerenciador de baixo nível | .deb |
| apt | Gerenciador de alto nível | .deb |
| apt-get | Interface tradicional do APT | .deb |
| apt-cache | Consulta informações do APT | .deb |
| aptitude | Interface alternativa para APT | .deb |
| GDebi | Instalação de arquivos .deb locais | .deb |
| Synaptic | Interface gráfica para APT | .deb |
| apt-file | Pesquisa arquivos pertencentes a pacotes | .deb |
| deborphan | Identificação de pacotes órfãos | .deb |
2. Família Red Hat / Fedora
Aqui temos outra grande família, baseada no formato .rpm.
Atualmente, dnf é a ferramenta de alto nível predominante nas distribuições modernas da família Fedora/RHEL, enquanto rpm é a ferramenta de baixo nível. yum é o predecessor histórico do DNF e ainda aparece em sistemas e documentação antigos.
| Ferramenta | Função | Formato |
|---|---|---|
| rpm | Gerenciador de baixo nível | .rpm |
| dnf | Gerenciador de alto nível | .rpm |
| yum | Gerenciador histórico / compatibilidade | .rpm |
| dnf5 | Implementação moderna do DNF | .rpm |
| rpm-ostree | Gerenciamento de sistemas baseados em imagens/árvore | .rpm |
| PackageKit | Camada de abstração | vários |
| GNOME Software | Interface gráfica | vários |
3. Família SUSE / openSUSE
O openSUSE e o SUSE Linux Enterprise também utilizam RPM, mas possuem uma história e infraestrutura próprias; não são simplesmente uma extensão do Fedora/RHEL. O principal gerenciador de alto nível é o Zypper.
| Ferramenta | Função |
|---|---|
| rpm | Gerenciador de baixo nível |
| zypper | Gerenciador de alto nível |
| YaST | Ferramenta administrativa, incluindo gerenciamento de software |
| PackageKit | Camada de abstração |
| Discover | Interface gráfica |
| Ferramenta | Função |
|---|---|
| rpm | Gerenciador de baixo nível |
| zypper | Gerenciador de alto nível |
| YaST | Ferramenta administrativa, incluindo gerenciamento de software |
| PackageKit | Camada de abstração |
| Discover | Interface gráfica |
4. Arch Linux
O Arch segue uma abordagem diferente e utiliza o pacman como seu principal gerenciador de pacotes. O formato nativo moderno é normalmente .pkg.tar.zst.
| Ferramenta | Função |
|---|---|
| pacman | Gerenciador principal |
| makepkg | Construção de pacotes |
| PKGBUILD | Receita de construção |
| yay | AUR helper |
| paru | AUR helper |
| pamac | Gerenciador/interface usado em algumas distribuições Arch-based |
| Octopi | Interface gráfica |
| pacman-mirrors | Gerenciamento de mirrors em alguns derivados |
O Gentoo é particularmente diferente porque seu modelo tradicional gira em torno do Portage e a principal ferramenta é o merge. Em vez de simplesmente instalar um binário pronto, o sistema pode baixar código-fonte e compilá-lo de acordo com as configurações do sistema.
O Arch também permite construir software, mas no Gentoo a construção a partir de receitas é uma parte muito mais central do modelo. A comparação de comandos do ArchWiki mostra, por exemplo, emerge como equivalente funcional a apt, dnf, pacman e zypper em várias operações.
7. Void Linux
O Void possui seu próprio sistema, o xbps:
| Ferramenta | Função |
|---|---|
| xbps-install | Instalação |
| xbps-remove | Remoção |
| xbps-query | Consulta |
| xbps-install -Su | Atualização |
| XBPS | Sistema de gerenciamento |
8. Slackware
O Slackware possui um modelo mais simples e tradicional. É um dos ecossistemas em que a filosofia de gerenciamento é bastante diferente de APT/DNF. Entre suas ferramentas estão:
| Ferramenta | Função |
|---|---|
| pkgtool | Gerenciamento de pacotes |
| installpkg | Instalação |
| removepkg | Remoção |
| upgradepkg | Atualização |
| slackpkg | Gerenciamento de pacotes oficiais |
9. Solus
O Solus também possui seu próprio gerenciador de pacotes, o eopkg.
10. Nix / NixOS
O Nix é ainda mais diferente. Ele não é apenas um programa para baixar e instalar pacotes. É um sistema de gerenciamento de pacotes e ambientes baseado em uma abordagem funcional e declarativa. Também pode ser utilizado em distribuições Linux, mas não faça isso!
As outras distros não foram feitas para recebê-lo e a integração e experiência de uso não serão perfeitas. Você foi avisao.
11. GNU Guix
O GNU Guix segue uma filosofia semelhante em alguns aspectos ao Nix. O sistema operacional correspondente é o “Guix System”, mas o gerenciador pode ser utilizado em outros ambientes. É, portanto, outra categoria além do tradicional apt/dnf.
12. Flatpak
Aqui começa uma distinção importante. O Flatpak não é simplesmente o “apt de outra distribuição”. Ele é um sistema para empacotar, distribuir e executar aplicativos Linux de maneira independente da distribuição, com forte utilização de “sandboxing”. O Flathub é um repositório de aplicativos; não é o próprio Flatpak.
13. Snap
O Snap também pertence a uma categoria diferente dos gerenciadores tradicionais de distribuição. O snapd é o serviço que gerencia os Snaps instalados e suas operações. Ele também procura tornar a distribuição de aplicativos menos dependente do sistema de pacotes da distribuição.
14. AppImage
Aqui temos outra distinção importante: AppImage não é propriamente um gerenciador de pacotes. É principalmente um “formato de distribuição de aplicativos”. A documentação do projeto o descreve como um modo de fornecer binários, incluindo dependências que não podem ser presumidas como presentes no sistema.
15. Gerenciadores de pacotes de linguagens
Se ampliarmos a definição de “gerenciador de pacotes”, entramos em outro universo.
| Ecossistema | Gerenciador |
|---|---|
| Python | pip |
| Node.js | npm |
| JavaScript | yarn |
| JavaScript | pnpm |
| Rust | cargo |
| Ruby | gem |
| PHP | composer |
| Perl | CPAN |
| R | R packages |
| Haskell | cabal, `stack |
| Elixir | mix |
| Julia | Pkg |
| Dart/Flutter | pub |
16. Front-ends gráficos
Também existem programas que não são gerenciadores de pacotes independentes, mas interfaces para outros sistemas. Alguns exemplos:
| Programa | Normalmente trabalha com |
|---|---|
| Synaptic | APT |
| GNOME Software | várias fontes |
| KDE Discover | várias fontes |
| Pamac | pacman/outros, dependendo da distribuição |
| Octopi | pacman |
| YaST | RPM/Zypper |
| Apper | PackageKit |
| GDebi | .deb |
17. PackageKit
O PackageKit é outra coisa interessante. Ele procura fornecer uma “camada de abstração” para que programas gráficos possam conversar com diferentes sistemas de gerenciamento de pacotes.
18. Convertendo pacotes
Existem ainda ferramentas que fazem conversões entre formatos. Um exemplo conhecido é o alien, que pode converter determinados pacotes entre formatos como .deb e .rpm. Mas não significa que alien seja um gerenciador de pacotes completo.
19. A visão geral
Se colocarmos tudo em um único mapa, fica mais fácil entender:
20. A tabela que resume tudo
| Família/ecossistema | Alto nível | Baixo nível/formato | Tipo |
|---|---|---|---|
| Debian | apt | dpkg / .deb | Sistema |
| Ubuntu | apt | dpkg / .deb | Sistema |
| Linux Mint | apt | dpkg / .deb | Sistema |
| Fedora | dnf | rpm / .rpm | Sistema |
| RHEL | dnf | rpm / .rpm | Sistema |
| Rocky/Alma | dnf | rpm / .rpm | Sistema |
| openSUSE | zypper | rpm / .rpm | Sistema |
| Arch | pacman | .pkg.tar.zst | Sistema |
| Manjaro | pacman | .pkg.tar.zst | Sistema |
| Alpine | apk | .apk | Sistema |
| Void | xbps | pacotes XBPS | Sistema |
| Gentoo | emerge | ebuild/Portage | Sistema |
| Slackware | pkgtool / slackpkg | Slackware packages | Sistema |
| Solus | eopkg | pacote Solus | Sistema |
| NixOS | nix | derivations/store | Declarativo |
| Guix | guix | store/derivations | Declarativo |
| Flatpak | flatpak | Flatpak | Apps |
| Snap | snap/snapd | Snap | Apps |
| AppImage | — | AppImage | Formato |
| Python | pip | PyPI packages | Linguagem |
| Node.js | npm | npm packages | Linguagem |
| Rust | cargo | crates | Linguagem |
| Ruby | gem | gems | Linguagem |
| PHP | composer | packages | Linguagem |
Então, afinal, quantos gerenciadores existem?
Uma resposta mais rigorosa seria: não existe um número oficial, porque depende de onde colocamos a fronteira. Se estivermos falando somente dos principais gerenciadores de pacotes nativos de sistemas Linux, temos algo na ordem de 15–20 sistemas relevantes, considerando as principais famílias e sistemas independentes.
Se adicionarmos front-ends, helpers, ferramentas de construção, camadas de abstração e sistemas de distribuição de aplicativos, passamos facilmente de 30. E se incluirmos gerenciadores de pacotes de linguagens, o universo passa a ser muito maior.
Essa é provavelmente a maneira mais correta de pensar no assunto: Linux não possui “um gerenciador de pacotes”; cada família de distribuição possui sua própria infraestrutura, e várias delas podem coexistir na mesma instalação.
A bagunça está lançada e nunca vai se resolver. Mas não se preocupe, pois - nesse momento - há outros gerenciadores sendo criados, todos com o objetivo mágico e inalcançável de “revolucionar” a gestão de pacotes no pinguim.
Referências:
openSUSE — Documentação oficial
Gentoo — Relação entre emerge e ebuild
Alpine Linux — Especificação do APK
Void Linux — Documentação oficial
Void Linux — Manuais e documentação de XBPS
Flatpak — Documentação oficial em português
Flatpak — Uso da linha de comando
Flatpak — Documentação de referência
AppImage — Documentação oficial
Snapcraft — Documentação oficial

