
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 yum
para 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.h
pois é 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).