Existe alguma maneira simples de instalar os tarballs?

5

A maioria dos softwares Linux é empacotada em tarballs. Todos eles exigem apenas alguns comandos para compilá-los e instalá-los.

Minha pergunta é; temos o gdebi para pacotes debian independentes, então porque não um aplicativo para instalar tarballs da mesma maneira? Por que esse processo aparentemente simples não é automatizado? Por que devemos continuar a intimidar e expulsar novos usuários com idéias de compilação de software?

    
por Umang 11.08.2010 / 21:30

9 respostas

12

Esses processos são automatizados. Você os obtém principalmente em pacotes .deb ou .rpm. A única diferença (no nível em que você está pensando) entre um tarball e um .deb é a compilação. O Tarball geralmente contém código-fonte e cria arquivos, não binários pré-compilados (embora eles também contenham esses também). Os .debs são pré-compilados em várias arquiteturas.

Aqui está uma analogia para você:

a .deb é um caminhão que transporta um carro inteiro.

Um tarball é um caminhão que transporta uma caixa de peças de carros e um manual que lhe diz como montar as peças para pegar o carro.

Então, quando você instala algo de um .deb (ou de um .rpm naquelas "outras" distros), você está instalando as mesmas coisas que terá nesse tarball, apenas com o trabalho já feito para você.

Embora eu discorde de txwikinger sobre progressão / regressão. Não há nada de errado com tarballs e uso-os com frequência para finalizar o código ou capturas de tela, arquivos de log ou o que você deve enviar para as pessoas por vários motivos. Também faço o download de tarballs de origem para ler o código-fonte de um programa para que eu possa ver o que está acontecendo se me deparo com um problema.

    
por DreadPirateJeff 11.08.2010 / 21:45
5

Em vez de gastar tempo facilitando a instalação de tarballs, seria mais benéfico em geral gastá-lo empacotando o software para o Debian / Ubuntu. Isso não apenas aumentará as ofertas de distribuições baseadas no Debian, como o Ubuntu, mas também instalará as dependências corretamente

    
por Adam Collard 11.08.2010 / 21:40
3

tarballs são geralmente altamente customizáveis. mesmo com 90% deles, basta ir ./configure & amp; & amp; make install, alguns outros requerem parâmetros personalizados ou, no pior dos casos, usam diferentes etapas para construir o aplicativo.

imho como um usuário normal você não deveria ter que lidar com tarballs. talvez seja melhor verificar se está no repositório de alguém primeiro.

o problema com os tarballs (como um método de instalação para os usuários finais) é que: - Se algo der errado você rapidamente precisa ser muito técnico para consertar - não necessariamente adere à estrutura de pastas do seu disto - nem sempre é possível desinstalar facilmente o software novamente.

para sua segunda pergunta: sim, este processo é automatizado com pacotes debian-source ou pacotes rpm-source. mas essas não são problemáticas e eu acho que elas podem ser abertas no gdebi. Não tenho certeza se você sabe, mas um tarball é a maneira mais fácil de um desenvolvedor obter seu código no mundo. não importa a bagunça que eles tenham em seu projeto, apenas feche a fonte e carregue-o - esse é o único requisito que eu conheço para um tarball: ele deve conter a fonte de algum aplicativo e eventualmente fornecer um script de construção.

Então mesmo que não funcione usar esses pacotes diretamente, eu acho que você está tocando em uma questão muito importante aqui: a embalagem do Linux é uma bagunça. É muito trabalhoso mesmo para uma única distro e é praticamente impossível para um pequeno projeto manter pacotes para uma variedade de distros.

havia (e ainda há) um monte de projetos que tentaram unificar o empacotamento através de distros, mas isso nunca foi realmente a lugar algum. pelo menos nada que seja tão comum quanto um pacote msi para windows ou um dmg no mac.

Eu sei que essa resposta deve ser frustrante, mas se eu não perdi uma revolução recentemente, é por isso que estamos presos por enquanto.

    
por hansi 11.08.2010 / 21:59
3

Checkinstall pode gerar debs a partir da fonte. (Também pode gerar pacotes de RPM e slackeware)

Você executa o ./configure então

checkinstall -D 

para criar um pacote debian.

Eu acho que a ferramenta é principalmente para permitir que você atualize e remova software na sua própria máquina e não para criar distribuições para outras pessoas - mas se você não tem dependências complexas, ele deve fazer o que você quer.

    
por Robert Christie 16.08.2010 / 12:12
2

Você pode escrever um pequeno script se estiver fazendo muito isso ...

#!/bin/bash
FILE=
DIR="${FILE%.tar.gz}"
tar -xzf 
cd $DIR
./configure
make
sudo make install

Chame de tarinstall (ou algo assim), coloque-o no seu caminho e faça:

tarinstall thisnewpackage.tar.gz

Embora eu concorde que é muito melhor usar um sistema de empacotamento como .debs ou .rpms.

    
por x3ja 11.08.2010 / 22:41
1

Aplicativos diferentes são escritos por desenvolvedores diferentes com padrões diferentes. Seria uma tarefa muito difícil ter um aplicativo para instalar todos os tarballs. Em vez disso, temos debs que são pré-fornecidos. Os tarballs também fornecem um problema de dependência em que o debian e os derivados foram corrigidos com o apt e o aptitude, o que seria quase impossível de conseguir com apenas um tarball.

    
por Nigel 11.08.2010 / 21:40
1

Como usuário normal, você provavelmente não quer instalar os tarballs. As equipes Debian e Ubuntu gastam muito tempo personalizando e verificando os pacotes upstream antes de colocá-los no repositório. Fazer um pacote é uma grande bagunça de dependências e scripts de instalação específicos da distribuição. Simplesmente não há uma maneira simples de automatizar o processo.

No entanto, se você é um programador ou está tentando contribuir com um projeto upstream, você precisará instalar tarballs oficiais eventualmente. Embora não seja automático, existem algumas ferramentas que facilitam o processo.

Se você quiser apenas corrigir algum bug em um programa que você instalou, você pode obter o código-fonte com apt-get source packagename e fugir. Se você quiser enviar esse patch para o upstream, é melhor começar com um tarball de upstream.

A maioria dos projetos lá fora está usando o autotools, que automatiza uma boa quantidade de decisões em tempo de compilação. Geralmente, você pode dizer se um projeto usa autotools porque existe um script de configuração na pasta. Se houver, você pode criar e instalar o pacote usando uma linha ./configure && make && make install . A menos que você tenha construído o pacote antes, provavelmente ele falhará porque você está perdendo algumas dependências em tempo de compilação.

Se o pacote que você está tentando instalar já estiver nos repositórios do Ubuntu, você pode fazer com que o APT instale automaticamente todas as bibliotecas necessárias para compilar o tarball com apt-get build-dep nomedopacote . Se não houver novas dependências, isso geralmente é tudo o que você precisa fazer antes de poder compilar o programa. Se não estiver nos repositórios do Ubuntu, verifique a documentação do projeto para descobrir o que precisa.

Um problema com o procedimento ./configure && make && make install é que geralmente não há make uninstall . Existe um programa chamado checkinstall que executará make install para você e registrará o pacote no APT para que você possa desinstalá-lo posteriormente. O checkinstall nem sempre funciona e, dependendo da importância do pacote que você está instalando para o sistema, pode ser muito perigoso.

    
por wm_eddie 12.08.2010 / 10:58
0

Os pacotes .deb são tarballs com as informações necessárias para fazer o gerenciamento adequado de pacotes adicionados a eles.

Se você acabou de instalar um tarball, como garantir que todas as dependências sejam atendidas? Todas as bibliotecas necessárias estão instaladas?

Como você deseja remover um pacote que é instalado apenas pelo tarball?

Você perde todas as salvaguardas que o gerenciamento de pacotes baseado em Debian fornece e, em particular, facilita a instalação de software por novos usuários. Para facilitar a instalação de tarballs, eles seriam um passo para trás, não um progresso.

Isso de lado, como pode

./configure && make && sudo make install

ser ainda mais simplificado? (Se você considera um usuário que precisa ser capaz de lidar com as questões levantadas acima)

    
por txwikinger 11.08.2010 / 21:39
0

Como nas postagens acima, checkinstall irá ajudá-lo a instalar e desinstalar o aplicativo de origem de maneira eficiente. Como ele cria pacotes nativos (rpm para sabores redhat e deb para sabores debian incluindo o ubuntu) é muito fácil gerenciar esses pacotes com o gerenciador de pacotes nativo, como o software center. Consulte este artigo para mais informações: findasolution .in checkinstall management de pacotes facilitado no linux . É originalmente o retorno para Centos, mas também funcionará no Ubuntu.

    
por aneeshep 09.11.2010 / 07:45