Por que nem todos os pacotes / softwares Linux vêm em formato .deb? [fechadas]

5

Um pacote .deb é muito fácil de instalar, assim como .exe no Windows, basta clicar duas vezes e instalar via USC. Eu me pergunto por que alguns desenvolvedores escolhem formatos como .tar.gz (isso assusta o inferno fora de mim), o que é complicado de instalar.

Provavelmente nem todos os garfos do Linux são compatíveis com .deb ; é assim?

Por que a comunidade Linux não estabelece um padrão para o gerenciamento de pacotes para que todo e qualquer software possa estar em .deb format (adoro esse formato devido à simplicidade de instalação) e os usuários finais serão beneficiados.

    
por waqar 26.03.2014 / 19:20

5 respostas

19

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 é

  1. Na verdade, não é um formato. Isso é o que é conhecido como um tarball compactado. tar cria arquivos ( .tar ) que são então passados por gzip para compactá-los ( .gz ). Veja aqui para mais detalhes.

  2. 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.

  3. 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:

  1. Extraia o arquivo

    tar xvzf software.tar.gz
    
  2. Mova-se para o diretório recém-criado, onde os arquivos foram extraídos

    cd software/
    
  3. Configurar

    ./configure
    
  4. Compile

    make
    
  5. 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 .

    
por terdon 26.03.2014 / 19:40
8

Na verdade, existem alternativas para .deb packages

.deb packages significa debian packages . Foi iniciado pelo Debian Linux Distribution

Outro participante importante é rpm , que significa RedHat package manager

O Linux depende de código aberto. Então, a maioria dos arquivos compactados como .tar.gz são códigos-fonte

Você tem que compilar e rodar em qualquer distribuição do Linux assim:

tar -xvf yourdownloadedpackagefilename.tar.gz
cd yourdownloadedpackagefilename
./configure
make
make install

Nota: você deve ler atentamente o arquivo README porque nem todos os pacotes fonte se comportam da mesma maneira!

Este não é o caso quando se lida com gerenciadores de pacotes. Eles dependem da distro.

Espero que ajude

Eu achei essa citação muito útil para definir a diferença entre os gerenciadores de pacotes:

  

Ambos os grupos são "gerenciadores de pacotes" que simplificam muito o   processo de instalação, atualização, manutenção e remoção   Programas. Os arquivos "deb" são para uso pelo utilitário "dpkg"   originado com a distribuição Debian (da qual o Ubuntu é uma variante) e   os arquivos "rpm" são para o Gerenciador de Pacotes RedHat, um semelhante mas muito   utilitário diferente que se originou com a distribuição da Red Hat.

     

Antes de os gerenciadores de pacotes entrarem em uso, instalar um novo   O software era um processo complicado que desativava muitos não-geeks. Você   tinha que localizar seu código-fonte, em seguida, compilar e vincular essa fonte em   um arquivo binário executável. A primeira tentativa de fazê-lo geralmente resultou   em uma longa cadeia de mensagens de erro sobre arquivos de biblioteca ausentes - por   que você precisava pesquisar, instalar e repetir o processo.

     

Os utilitários do gerenciador de pacotes tornaram possível listar todos esses   "dependências" dentro de um único arquivo que também incluía uma descrição,   e o arquivo de programa binário pronto para execução. O gerenciador de pacotes leva   o cuidado de buscar todas as dependências necessárias e também lida com   configuração do novo software.

     

Enquanto os dois tipos diferentes de gerente fazem essencialmente o mesmo trabalho,   seus arquivos não são diretamente intercambiáveis. Existe um utilitário para   converter arquivos RPM no formato DEB, mas não há garantia   que um arquivo RPM convertido irá configurar automaticamente as coisas apropriadamente   para os padrões Debian de localização de arquivos (que diferem significativamente,   em alguns aspectos, daqueles da Red Hat e seus descendentes).

     

Espero que isso ajude um pouco; nem todas as distribuições usam gerenciadores de pacotes,   então se você quiser aprender mais sobre as "velhas maneiras" você pode tentar coisas   como o Slackware ou o GenToo! Isso pode dizer mais do que você será   aprendizagem confortável

    
por kirchberger 26.03.2014 / 19:26
7

Realmente, porque a pergunta está errada .

É como perguntar "por que eu posso comprar bolos e farinha, ovos, açúcar também? É tão mais fácil simplesmente comer o bolo, por que alguém vende todas as outras coisas também?"

.deb são pacotes com programas (normalmente) compilados que alguém compilou, instalou, configurou e adaptou a um sistema operacional específico. Alguém cuidou de dependências, efeitos colaterais, etc. Note que .deb format é usado pelo Ubuntu e várias outras distribuições, como debian, Mint, etc ... e mesmo que você possa instalar um debian .deb no Ubuntu e muitas vezes ele vai funcionar, não é garantido assim. Outras distribuições possuem diferentes sistemas de empacotamento (rpm, pacman, até .tar.gz para o slackware).

.tar.gz é um conjunto de arquivos compactados e arquivados. Pense em .zip . Pode ser o que for. Um software, uma coleção de fotos, código-fonte, código compilado, até mesmo um pacote para uma distro, o nome dele.

    
por Rmano 26.03.2014 / 19:34
4

Como explicado na FAQ da Debian :

  

Pacotes geralmente contêm todos os arquivos necessários para implementar   conjunto de comandos ou recursos relacionados. Existem dois tipos de Debian   pacotes:

     

Pacotes binários, que contêm arquivos executáveis, arquivos de configuração,   páginas man / info, informações sobre direitos autorais e outras documentações. Estes   pacotes são distribuídos em um formato de arquivo específico do Debian eles são geralmente   distinguido por ter uma extensão de arquivo '.deb'. Pacotes binários podem   ser descompactado usando o utilitário Debian dpkg e possivelmente através de um frontend   como o aptitude.

     

Pacotes de origem, que consistem em um arquivo .dsc descrevendo a origem   pacote (incluindo os nomes dos seguintes arquivos), a .orig.tar.gz   arquivo que contém a fonte original não modificada em gzip-compacted   formato tar e geralmente um arquivo .diff.gz que contém o   Mudanças específicas do Debian para a fonte original. A utilidade   O dpkg-source embala e descompacta os arquivos fonte do Debian. O programa apt-get pode usar um   frontend para o dpkg-source.

    
por Tasos 26.03.2014 / 19:39
2

Isso ocorre porque o .tar.gz inclui o código-fonte, para que você possa investigar, se quiser. Além disso, isso também dá aos desenvolvedores a chance de fornecer a você README

Não deixe que eles te assustem - tudo o que você precisa fazer é ler o arquivo INSTALL que normalmente vem empacotado (ou está no README) -

geralmente, é simplesmente:

./configure
make
make install

e voila!

    
por rm-vanda 26.03.2014 / 19:25