Isso ocorre porque o ecossistema Linux contém muitos sub-ramos diferentes (clique na imagem para uma versão maior) 1 :
Agora, uma das diferenças básicas entre essas distribuições é o gerenciador de pacotes que elas usam. O Debian e seus derivados (um dos quais é o Ubuntu) usam dpkg
, que lida com .deb
packages. O outro grande player é o Gerenciador de Pacotes RedHat ( rpm
), que funciona com .rpm
packages. Outras distribuições possuem seu próprio sistema ou usam um wrapper para instalar diretamente da origem ou até mesmo não ter nenhum gerenciador de pacotes.
Em qualquer caso, o formato .tar.gz
é
-
Na verdade, não é um formato. Isso é o que é conhecido como um tarball compactado.
tar
cria arquivos (.tar
) que são então passados porgzip
para compactá-los (.gz
). Veja aqui para mais detalhes. -
Não é um instalador. É apenas uma coleção de arquivos / diretórios, no caso de tarballs de origem, o código-fonte de um programa.
-
Não é específico para códigos-fonte ou programas. Você pode pensar em
.tar.gz
como equivalente ao Windows (e não apenas).zip
arquivos. Eles podem conter um instalador ou podem conter documentos do Word ou qualquer outra coisa.
A razão pela qual todos os programas Linux não são empacotados como .deb
files é porque, embora .deb
seja de fato popular, ele não funciona para todas as distribuições. Portanto, um desenvolvedor pode tentar empacotar seu aplicativo para quantas distribuições puder ou simplesmente disponibilizar o código-fonte e permitir que os usuários compilem ele por conta própria. Até poucos anos atrás, a grande maioria dos programas Linux só era distribuída dessa maneira. A variedade de programas pré-embalados era muito pequena.
Isso mudou nos últimos anos com o enorme aumento de popularidade do formato .deb
, que foi em grande parte devido à popularidade correspondente do Ubuntu e do Linux Mint.
A razão pela qual nem todo mundo usa .deb
é que cada abordagem ( dpkg/apt-get
, rpm/yum
, pacman
etc) tem seus fãs obstinados. E se eu só liberar meu programa como .deb
, nem todos poderão usá-lo. A única maneira de garantir que qualquer qualquer usuário GNU / Linux possa usar meu software é liberá-lo como fonte e deixá-lo compilá-lo manualmente.
Como nota final, você realmente não deveria ter medo de tais programas. Embora seja verdade que resolver as dependências pode ser um problema, a maioria dos desenvolvedores explicará claramente as dependências de sua página da Web e, desde que você as tenha instalado, instalar o software a partir de um tarball de origem é realmente muito fácil:
-
Extraia o arquivo
tar xvzf software.tar.gz
-
Mova-se para o diretório recém-criado, onde os arquivos foram extraídos
cd software/
-
Configurar
./configure
-
Compile
make
-
Instalar
sudo make install
Isso tudo pode ser condensado para:
tar xvzf software.tgz; cd software; ./configure && make && make install
1 Imagem tirada de esta página da Wikipédia .