Eu só quero instalar um pacote! [fechadas]

0

Passei algumas horas tentando instalar um pacote e não obtive êxito; parece que isso acontece às vezes em um ambiente Linux.

Antecedentes: O pacote que desejo instalar está disponível como 1) uma .deb para x86 em vez de x64, 2) uma .Run , 3) fonte e 4) um instalador OSX. O instalador do OSX simplesmente funciona. Em uma nova instalação do Debian 7, eu tentei o .deb , o .Run e a compilação a partir do código-fonte. Todos os três me levaram através de uma série de aros. Os problemas mais básicos parecem ser que através de qualquer uma dessas rotas, o Debian 7 me deu uma versão muito antiga de LibC e uma versão muito antiga de Ocaml . A maior parte do meu tempo foi gasto executando um comando apt-get após o outro tentando resolver dependências.

Pergunta: Quais são algumas ferramentas que facilitam a instalação de pacotes ao automatizar o máximo possível do processo? Todos os pacotes, mesmo construindo a partir da fonte, deixam claro quais versões de quais dependências eles exigem, certo? Então, por que todas as dependências não podem ser resolvidas automaticamente?

Eu ficaria feliz em criar um diretório no meu sistema que contenha uma cópia de cada dependência que meu pacote requer, para que ele possa rodar em seu próprio ambiente sem modificar as versões de outros pacotes no meu sistema; Não tenho certeza se isso é possível. Eu tenho certeza que deve haver alguma maneira de dizer "me dê o pacote chamado Foo, versão 4.2.3" e ter todo o resto feito por mim.

    
por themirror 27.09.2013 / 17:49

2 respostas

1

A experiência é praticamente idêntica. Seu problema é que o Debian (estável) não é uma distro de ponta, é estável . Isso significa que ele terá versões mais antigas de pacotes em seus repositórios (pode ser uma boa idéia mencionar o nome do pacote por sinal). Você está comparando com uma nova versão do OSX que tem versões mais recentes de bibliotecas essenciais, como libc .

Instalar pacotes .deb que foram empacotados para a versão do Debian que você está executando é muito fácil e indolor. Acredite, eu costumava ter que instalar a maioria das coisas da fonte. Quando você executar aptitude install foo.4.2.3.deb você está dizendo "me dê o pacote chamado Foo, versão 4.2.3" e tenha todo o resto feito por você. Se não estiver nos repositórios porque você está usando uma versão antiga, isso não é culpa do gerenciador de pacotes.

Então, eu recomendaria postar uma nova pergunta e perguntar como você pode instalar o pacote específico que você está tentando obter. Lembre-se de que, se for necessária uma versão mais recente de libc , é mais fácil fazer upgrade de todo o sistema para os repositórios testing ou experimental . Embora seja possível apenas atualizar a libc, não é fácil nem direto, veja aqui .

Além disso, você deve estar ciente de que isso não é um problema trivial. Enquanto as dependências são gerenciadas muito bem pelos gerenciadores de pacotes, elas podem entrar em conflito. Especialmente quando se trabalha com algo tão básico como libc .

Este comando irá imprimir uma lista de pacotes que dependem de libc .

apt-cache rdepends libc6

No meu Debian, essa lista contém 16056 pacotes diferentes. Se você atualizar a libc porque o pacote foo depende de uma versão mais recente, como o gerenciador de pacotes deve lidar com o fato de que os pacotes 16056 dependem da versão instalada? Como saber se eles também serão compatíveis com a versão mais recente?

    
por 27.09.2013 / 18:23
0

Eu gostaria apenas de gritar aqui e dizer que acho que sua expectativa está errada.

As soluções visam 2 públicos-alvo completamente diferentes. A Apple controla rigidamente qual software está disponível e é uma faixa estreita de aplicativos.

Eu ajudei mais pessoas que eu gostaria de admitir que estavam usando um sistema OSX onde eles queriam instalar o projeto opensource "X" e eles estavam passando por todos os mesmos tipos de aros no OSX com a versão errada do Xcode, ou eles estavam usando a versão oficial do subversion e precisavam instalar uma versão do MacPorts ou HomeBrew. Não houve literalmente nenhuma diferença em lutar com as diferentes bibliotecas e dependências até que você pudesse obter este pacote "X" instalado.

Não existe uma ferramenta mágica que eu já tenha visto que permita que você coloque as dependências em um diretório e instale o aplicativo "X". Simplesmente não existe e as chances nunca são de vontade. Houve várias tentativas de melhorar o gerenciamento de dependências e de pacotes e é apenas um problema extremamente complicado para resolver.

Apt, Yum, etc, todos fazem um trabalho decente, mas o problema é que eles estão tentando resolver um problema não-consolidado, o que geralmente é impossível. Você só pode obter 80% de tipos de soluções ou soluções que funcionem para "a maioria" dos casos.

É tão simples quanto isso.

    
por 27.09.2013 / 19:35