Qual é a diferença entre pacotes deb e tar balls? Quais são as vantagens / desvantagens de cada um?

9

Eu não sei sobre bolas de alcatrão. A maioria dos pacotes está disponível nas formas tar ball, mas os pacotes Ubuntu são pacotes Debian.

Qual é a diferença entre pacotes deb e tar balls?

Quais são as vantagens / desvantagens de cada um?

siraj
fonte

Respostas:

7

As bolas de alcatrão são geralmente o código fonte que você precisa compilar. Debs são programas pré-compilados, já construídos e configurados para Ubuntu / Debian.

Eu sugeriria fortemente o uso de debs quando disponível, pois eles são mais fáceis e se integram ao gerenciador de pacotes, para que você possa desinstalá-los facilmente.

O Debs também instalará todas as dependências necessárias. Instalar a partir da fonte pode levar ao que é chamado carinhosamente de "inferno da dependência". A maioria dos programas de código aberto depende de vários outros programas / bibliotecas para funcionar. Ao instalar a partir do código-fonte, ele não os instalará e, em vez disso (esperançosamente), reclamará que uma dependência não foi atendida. Você tenta instalar essa dependência e ela é bombardeada, exigindo outra dependência, etc., etc.

Instalar a partir da fonte também pode colocar seus arquivos em locais inesperados, pois diferentes distribuições definem as coisas um pouco diferentes.

Quando preciso instalar um programa, tento minhas opções nesta ordem:

  1. Procure no Centro de Software. Isso é obviamente o mais fácil, embora o Centro de Software não seja completo e não esteja atualizado com as versões mais recentes.

  2. Tente encontrar um repositório que o forneça. A adição de um repositório fará com que o programa apareça no Software Center, receba atualizações oportunas, etc.

  3. Procure um pacote .deb.

  4. Instale a partir da fonte (bola de alcatrão).

reverendj1
fonte
6

As bolas de alcatrão são apenas outra forma de compressão, como o zip. Embora os formatos e as técnicas de compactação sejam diferentes, é basicamente um contêiner para um grupo de arquivos e pastas.

Normalmente, o código fonte e os arquivos necessários serão disponibilizados na internet pela pessoa / grupo que escreveu o software na forma de uma bola de alcatrão. Então você pode baixá-lo, descompactá-lo, compilar o software e instalá-lo.

No entanto, o que os pacotes deb fazem é facilitar esse processo de instalação, mantendo um padrão. O software disponível na Internet será utilizado pelos mantenedores de pacotes Debian, transformados em seus pacotes .deb correspondentes e colocados no repositório Debian.

insira a descrição da imagem aqui

Você pode ler sobre isso no blog de mantenedores de pacotes Debian aqui: http://www.j4v4m4n.in/2012/05/01/debian-utsavam-at-mes-kuttippuram-kerala-2/

Quanto às vantagens e desvantagens, os pacotes .deb são gerenciados por gerenciadores de pacotes, como apt e aptitude. Portanto, sempre que você instalar um software com ele, eles descobrirão automaticamente se você possui as dependências necessárias para executar o software em seu sistema e as instalarão para você.

Mas se você estiver usando uma bola de alcatrão, instale-o, precisará descobrir do que depende esse software e cada vez que precisar verificar manualmente se as dependências do software que você está instalando já foram instaladas anteriormente.

Mas o apt faz tudo isso para você.

Além disso, a instalação a partir do código-fonte (instalação a partir do tar balls) terá métodos diferentes para diferentes softwares. Existe a filosofia GNU de instalação do configure-make-make e existem outros métodos, dependendo de como o software foi escrito.

Entretanto, convertê-los em deb remove completamente todas essas diferenças e facilita a instalação e o uso do software pelo usuário.

Mais um ponto. Quando você precisa instalar a partir da fonte? Isso é de uma bola de alcatrão? Existem basicamente duas situações.

  1. Se a equipe de empacotamento debian ainda não empacotou um software.
  2. Se você deseja contribuir com o projeto. Isso significa que você pode fazer alterações no código-fonte, compilá-lo e testá-las.

Se você quiser saber mais sobre o empacotamento debian, pode lê-lo aqui: http://www.debian.org/doc/manuals/maint-guide/

Espero que isto ajude.

harisibrahimkv
fonte
1

Os pacotes Debian (e, portanto, o Ubuntu) são uma coleção de binários e instruções relacionadas para sua instalação. Isso significa que o próprio pacote sabe como e onde instalar, e também sabe a lista de pacotes dos quais depende.

Tarballs de origem (arquivos com extensão .tar.gzou .tar.bz2- ou mesmo .tgz ou .tbz2 ) são simplesmente conjuntos de arquivos e diretórios que foram compactados com o tarutilitário e também compactados com gzipou bzip2. Para criar o código fonte, você deve:

  1. descompacte os arquivos com tar xvfz file.tar.gzou tar xvfj file.tar.bz2(em um diretório vazio)
  2. configure o pacote com ./configure(o pacote testa o sistema para verificar se está tudo bem antes de iniciar a compilação)
  3. inicie a compilação com make
  4. se desejar, execute make installpara instalar o aplicativo em sua localização "padrão" (geralmente em / usr / {s} bin ou / usr / local / {s} bin, mas isso depende do aplicativo e da distribuição)

As principais vantagens dos pacotes Debian / Ubuntu com relação aos tarballs de origem são que os pacotes são "independentes" e seus binários são rastreados. Isso significa que o processo de descompactação é transparente para o usuário que apenas vê (aproximadamente) um pacote por aplicativo. O usuário nem precisa se lembrar de quais arquivos um determinado aplicativo instalou e onde, portanto, a instalação / remoção de aplicativos se torna (principalmente) um processo de uma instrução.

As principais vantagens dos tarballs de origem em relação aos pacotes binários são que, no primeiro caso, o código-fonte é compilado diretamente na máquina de destino e pode ser otimizado de acordo. Além disso, mesmo o melhor sistema de pacotes pode ser interrompido em casos específicos (por exemplo, pacotes de software novos ou antigos demais) e, geralmente, os pacotes oficiais são eliminados pelos servidores quando eles se tornam antigos. Nesses casos, é preciso procurar manualmente na Internet o aplicativo desejado e as bibliotecas específicas em versões específicas para satisfazer todas as suas dependências.

Avio
fonte
1
Um pequeno ponto. As etapas "configurar, fazer, instalar" são para os Softwares que usam a filosofia de construção GNU automake. Existem softwares que podem ser construídos a partir da fonte (de bolas de alcatrão) de várias maneiras. Portanto, pode não estar correto dizer "Para construir a fonte, configure, faça, faça a instalação". A melhor maneira de colocá-lo pode ser: "Para instalar a partir do código-fonte, leia o arquivo README ou INSTALL dentro do código-fonte e siga as etapas mencionadas nele. Consulte o seguinte: sosaysharis.wordpress.com/2011/11/28/…
harisibrahimkv 23/05
Sim, acabei de falar sobre esse tipo de método porque é adotado pela grande maioria dos tarballs de origem.
Avio
Não há debate lá. :)
harisibrahimkv
1

Eu posso ver algumas respostas muito boas já postadas. Mas há algumas coisas que precisam ser abordadas.

Ao contrário do que é conhecido como "inferno das dependências" quando se trata de compilar a partir do código-fonte, você pode realmente configurar o Ubuntu de forma que ele instale automaticamente essas dependências quando estiver compilando a partir de um tarball / qualquer fonte.

Leia como fazer isso aqui:

http://www.howtogeek.com/106526/how-to-resolve-dependencies- while-compiling-software-on-ubuntu/

Além disso, se você mantiver esse problema de dependência de lado, o lado bom dos tarballs é que você pode configurar muitas coisas relacionadas à instalação, como onde instalar etc., com muita facilidade no caso de instalar a partir do código-fonte.

Além disso, a palavra "Pacotes Debian" pode confundir você neste contexto. Lembre-se de que os pacotes Debian vêm em dois tipos, como diz aqui:

http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html

Obviamente, se você está falando apenas sobre arquivos deb, eles geralmente são aqueles softwares compilados, como as respostas acima já mencionadas.

Bharadwaj Srigiriraju
fonte