Verificador de dependência? antes de instalar

0

Todos em algum momento ou outro devem ter instalado um programa a partir do código-fonte no Linux. Muitas vezes eu me encontro baixando um programa que eu quero instalar, corro através do ./configure e muita mensagem de erro aparece dizendo que você não tem isso ou você não tem isso.

Existe um site que mostra claramente as dependências desse programa em particular? Alguns têm no arquivo README , mas a maioria nem se incomoda.

Existe uma maneira de encontrar todas as dependências sem passar pelo comando ./configure ?

    
por chutsu 30.11.2009 / 14:04

6 respostas

3

Como várias distribuições nomeiam pacotes de maneira diferente, isso é extremamente difícil de realizar. Por exemplo, no Debian, um pacote pode ser chamado de libfoo e seu pacote de desenvolvimento de contraparte libfoo-dev. No RHEL / CentOS, pode ser libfoo1 e libfoo1-devel.

Um configure.ac bem escrito (que é usado para gerar o script 'configure') deve informar, de uma maneira meta, qual pacote está faltando. Ou seja,

Checking for libfoo ... no
Checking for libfoo usability .... no
./configure: Error: You are missing the package 'libfoo' and possibly
'libfoo-dev(el)'

Isso permite que o apt-cache / yum procure por algo para instalar, se os erros que precederem a configuração: Erro: não são óbvios. A pesquisa na configuração do Google Googling geralmente dá frutos para descobrir exatamente o pacote que está faltando.

O problema real vem quando a versão do libfoo que sua distro oferece é muito antiga para o programa que você está tentando compilar. Nesse caso, você deve construir o próprio libfoo, instalá-lo separadamente da versão fornecida pela sua distro e dizer ao programa como fazer o link (também feito via 'configure')

Por esse motivo, costumo usar distribuições de movimentação rápida (ou seja, Ubuntu) para minha máquina de desenvolvimento. Normalmente, posso encontrar o que preciso, atualizado no repositório do universo.

Eu só tive que atualizar o glibc em uma máquina Debian Lenny apenas para poder construir e instalar um alvo AoE multi threaded baseado em AIO, além de criar meu próprio kernel 2.6.31.6 porque o programa queria eventfd Apoio, suporte. Eu sinto sua dor:)

No entanto, isso é parte da diversão de construir suas próprias coisas ... uma vez que funciona, você está duplamente satisfeito ... ou duplamente frustrado se não funcionar:)

    
por 30.11.2009 / 14:22
2

Existem programas que descobrirão dependências enquanto você constrói software. Eles observam o processo de compilação, param quando precisam de um arquivo, instalam um pacote que fornece esse arquivo e retomam o processo de compilação.

Por exemplo, no Debian há auto-apt .

    
por 30.11.2009 / 14:34
1

Muitas distribuições possuem um gerenciador de pacotes cujas tarefas são resolver as dependências. Se o seu distributivo não tiver um gerenciador de pacotes, você poderá encontrar as dependências com base em outros pacotes distributivos. Por exemplo, pacotes debian .

Por exemplo, para mutt .

Eu não sei como você pode encontrar todas as dependências se não houver um pacote.

    
por 30.11.2009 / 14:13
0

RPMFIND.NET liste os pacotes "Obrigatórios" para qualquer coisa que ele saiba.

O YUM e o APT (distribuições baseadas em RedHat e Debian, respectivamente) existem basicamente apenas para esse propósito, mas também permitem que você instale os pacotes também. Whoo-Hoo

    
por 30.11.2009 / 14:28
0
  1. Verifique no site do projeto - eles provavelmente listarão as dependências.
  2. Não se preocupe com algumas verificações / falhas que não são erros. Por exemplo, a maioria dos projetos que usam o autoscan verificarão awk, gawk, mawk, etc ... mas não importa se você instala um / todos eles.
  3. Se o configure realmente parar com um erro em alguma biblioteca, basta procurar o nome que ele reporta. apt-cache search ... / yum search / google é tudo o que você precisa normalmente.
por 30.11.2009 / 14:30
0

Como um caso limitado, se você estiver instalando a partir da fonte para obter uma atualização para um programa que já pode ser instalado através do gerenciador de pacotes, você pode instalar as dependências de compilação da versão no gerenciador de pacotes, e isso deve a maioria dos build-deps da nova versão

    
por 30.11.2009 / 17:45