Qual é a diferença entre pacotes deb e tar bolas? 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 nos formulários tar ball, mas os pacotes do Ubuntu são pacotes Debian.

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

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

    
por siraj 22.05.2012 / 17:40

4 respostas

7

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

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

Debs também instalará as dependências necessárias. Instalar a partir da fonte pode levar ao que é carinhosamente chamado 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 irá instalá-los e, em vez disso, (esperançosamente) reclamará que uma dependência não foi atendida. Você então tenta instalar essa dependência e, em seguida, explode, exigindo outra dependência, etc, etc.

A instalação a partir do código-fonte também pode colocar seus arquivos em locais inesperados, já que diferentes distribuições estabelecem as coisas um pouco diferentes.

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

  1. Procure no Centro de Software. Este é 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. Adicionar um repositório fará com que o programa apareça no Centro de Software, receba atualizações oportunas, etc.

  3. Procure um pacote .deb.

  4. Instalar da origem (bola de alcatrão).

por reverendj1 22.05.2012 / 17:54
6

As bolas de alcatrão são apenas outra forma de compressão, como o zip. Embora os formatos e técnicas de compactação sejam diferentes, ele é 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 tarball. Então você pode baixá-lo, descompactá-lo, compilá-lo 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á levado pelos mantenedores do pacote Debian, feitos em seus pacotes .deb correspondentes e colocados no repositório Debian.

Você pode ler sobre isso no blog do mantenedor do Pacote Debian aqui: link

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ê tem as dependências necessárias para executar esse software no sistema e as instalará para você.

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

Mas o apt faz tudo isso por você.

Além disso, a instalação a partir da origem (instalando a partir de bolas tar) terá diferentes métodos para diferentes softwares. Existe a filosofia GNU de instalar o configure-make-make e existem outros métodos dependendo de como o software é escrito.

No entanto, convertê-los em deb remove completamente todas essas diferenças e torna mais fácil para o usuário instalar e usar o software.

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

  1. Se a equipe de empacotamento da debian ainda não tiver empacotado um software.
  2. Se você quiser contribuir para o projeto. Isso significa que você pode fazer alterações no código-fonte, compilá-lo e testar as alterações.

Se você gostaria de saber mais sobre o empacotamento debian, você pode lê-lo aqui: link

Espero que isso ajude.

    
por harisibrahimkv 22.05.2012 / 17:55
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 conhece a lista de pacotes da qual depende.

tarballs de origem (arquivos com extensão .tar.gz ou .tar.bz2 - ou mesmo .tgz ou .tbz2 ) são simplesmente conjuntos de arquivos e diretórios que foram compactados junto com o utilitário tar e também compactados com gzip ou bzip2 . Para construir o código-fonte você precisa:

  1. descompacte os arquivos com tar xvfz file.tar.gz ou tar xvfj file.tar.bz2 (em um diretório vazio)
  2. configure o pacote com ./configure (o pacote testa o sistema para ver se está tudo bem antes de iniciar a compilação)
  3. inicie a compilação com make
  4. se você quiser, execute make install para 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 a distribuição)

As principais vantagens dos pacotes Debian / Ubuntu em 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 acabou de ver (aproximadamente) um pacote por aplicativo. O usuário nem precisa lembrar quais arquivos um determinado aplicativo instalou e onde, portanto, a instalação / remoção de aplicativos torna-se (principalmente) um processo de 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 quebrar em casos particulares (por exemplo, pacotes de software muito novos ou muito antigos) e geralmente os pacotes oficiais são eliminados pelos servidores quando se tornam muito antigos. Nesses casos, é necessário procurar manualmente na Internet o aplicativo desejado e as bibliotecas específicas em versões específicas para satisfazer todas as suas dependências.

    
por Avio 22.05.2012 / 23:37
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 "dependency hell" quando se trata de compilar a partir do código-fonte, você pode configurar o Ubuntu de tal forma que ele instale automaticamente essas dependências quando estiver compilando a partir de um tarball / qualquer fonte.

Leia como fazer isso aqui:

link

Além disso, se você mantiver esse problema de dependência de lado, a coisa boa sobre os tarballs é que você pode configurar muitas coisas relacionadas à instalação, como onde instalar, etc., muito facilmente, no caso de instalar a partir da origem.

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

link

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

    
por Forbidden Overseer 25.05.2012 / 12:15