Você pode me ajudar com meu problema de dependência de software?

13

This is a Canonical Question about Compile Dependencies and Package Management.

Eu tenho uma pergunta sobre compilar portas / software ou instalar RPMs no meu servidor * nix. Quando tento fazer isso, recebo muitas mensagens sobre dependências ausentes.

A comunidade do Server Fault pode ajudar?

    
por dunxd 20.03.2013 / 13:28

1 resposta

10

Bem-vindo à falha do servidor. Em geral, esse tipo de pergunta não está no tópico aqui. Espera-se que a maioria dos administradores de sistemas já tenha enfrentado esse problema antes de se tornar um administrador de sistemas, através de ajustes em suas próprias estações de trabalho. No entanto, sysadmins provenientes de um fundo do Windows podem não ter enfrentado isso, então aqui estão algumas coisas a considerar:

Por que não usar um gerenciador de pacotes para instalar software em seu servidor?

Os gerenciadores de pacotes, como yum ou apt , lidam com essas dependências para você. Além disso, eles também podem ser usados para gerenciar atualizações do software em seu servidor. A maioria dos sabores do * nix terá um gerenciador de pacotes instalado por padrão, especialmente no VPS que vem com o sistema operacional pré-instalado. Se você for realmente novo nisso, use um desses em seu sistema de produção e salve aventuras na compilação ou instalação de RPMs de ponta para o seu ambiente de teste.

Mas eu tenho que usar um pacote mais atualizado do que o disponível no meu gerenciador de pacotes!

A maioria dos gerenciadores de pacotes pode ser configurada para usar diferentes repositórios - você pode descobrir que há um que fornece a versão do pacote que você precisa e ainda permite que você aproveite as funções do seu gerenciador de pacotes.

O pacote de que preciso não está disponível por meio de repos ou gerenciadores de pacotes

Nesse caso, você provavelmente faz precisa descobrir as dependências (ou sugá-lo e usar uma versão mais estável / comum do software). Você provavelmente deve fazer o seguinte em um ambiente de teste e fazer anotações cuidadosas do que faz:

  • Certifique-se de ler a documentação do software que está instalando - isso provavelmente listará o que você precisa instalar primeiro, mas não o que é necessário para esse software.
  • Use seu gerenciador de pacotes para instalar as coisas que são necessárias - na maioria dos casos, essas estarão disponíveis.
  • Depois de concluir, tente instalar.
  • Se você ainda receber mensagens sobre dependências ausentes, anote todas elas e tente instalar o máximo possível usando o gerenciador de pacotes.
  • Se uma dependência não for encontrada, você deverá considerá-la uma subtarefa e tratá-la recursivamente (encontrar o tarball de origem, localizar dependências, instalar).
  • É um processo interativo.

Ainda estou tendo problemas!

Se você seguiu todos os passos acima e ainda tem problemas, então você pode se deparar com algum problema estranho que outros Server Faulters possam ter prazer em ajudar. Crie uma nova pergunta, fornecendo detalhes de qual software você está tentando instalar, qual versão e as mensagens de erro exatas que você está vendo.

Conselhos específicos para os principais sistemas de gerenciamento de pacotes

Gerenciamento de pacotes RPM (RHEL / Fedora e clones) e DEB (Debian / Ubuntu e clones)

  • yum whatprovides filename é uma excelente maneira de localizar o pacote que fornece um arquivo ou biblioteca específica em um sistema do tipo RHEL.
  • Não use ./configure && make && make install cegamente, se possível. O gerenciamento de pacotes foi inventado por esse motivo para evitar a bagunça inátil e inamovível que resulta da instalação não rastreável de muitos arquivos conflitantes.
  • Muitas bibliotecas são divididas em duas partes: binário (objetos compartilhados, por exemplo) e desenvolvimento (cabeçalhos). Assim, você precisaria dos pacotes libfoo e libfoo-devel (ou -dev ).
  • Considere usar fpm ( link ) para converter tarballs em RPMs e DEBs limpos
  • Se você está lançando seus próprios pacotes, você é a pessoa responsável por suas atualizações, testes e manutenção. Se você não tem infra-estrutura para isso, definitivamente está mirando alto demais.

Localizando dependências por nome de arquivo para RPMs

O

link é um bom lugar para procurar nomes de pacotes se você souber o nome do arquivo do qual o procedimento de instalação está reclamando. Não é recomendado combinar e misturar pacotes de diferentes distribuições.

    
por 06.08.2013 / 21:15