A instalação do RubyGem não consegue encontrar arquivos de cabeçalho

A instalação do RubyGem não consegue encontrar arquivos de cabeçalho

Estou executando Ruby 1.9.3 no CentOS 5.3. Eu instalei compilando Ruby 1.9.3 do código-fonte, junto com libyaml. Também estou usando o rbenv para gerenciar versões, então coloquei a instalação compilada em ~/.rbenv/versions/1.9.3-p286, que é onde o rbenv mantém as versões do Ruby.

Tudo está funcionando muito bem e agora estou instalando o Gems. No entanto, uma jóia em particular ainda não está sendo instalada, o que me faz pensar que posso estar perdendo uma dependência. É uma gem interna, portanto não listada no RubyGems, mas aqui está o resultado de uma instalação de gem:

Building native extensions.  This could take a while...
ERROR:  Error installing vmc-helper:
        ERROR: Failed to build gem native extension.

        /home/fs/.rbenv/versions/1.9.3-p286/bin/ruby extconf.rb
checking for expat.h... no
checking for xmlparse.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Eu sou um cara Debian, então realmente não tenho muita experiência com pacotes Redhat/RPM e outros enfeites, então não tenho certeza de quais dependências estou faltando em meu sistema para instalar este Gem.

Alguém pode me ajudar a saber quais pacotes preciso instalar para esses arquivos de cabeçalho ausentes acima?

Responder1

Procure os arquivos ausentes:

checking for expat.h... no
checking for xmlparse.h... no

Agora use yumpara procurar o pacote que fornece esses arquivos:

yum provides */expat.h

Você verá vários pacotes aqui. O que você está procurando é aquele que contém, /usr/include/expat.hpois é o diretório de inclusão padrão. Então instale o pacote indicado:

yum install expat-devel

Repita o processo para o outro arquivo:

yum provides */xmlparse.h

Aqui você falhará e receberá o erro No matches found. Nesse caso, você precisará ler o código-fonte da gem ou entrar em contato com o desenvolvedor para descobrir qual pacote ele deseja que você tenha. Deve estar listado na documentação da gem como um requisito do sistema (se o desenvolvedor se preocupou em escrever a documentação).

informação relacionada