
Estoy ejecutando Ruby 1.9.3 en CentOS 5.3. Lo instalé compilando Ruby 1.9.3 desde el código fuente, junto con libyaml. También estoy usando rbenv para administrar versiones, así que coloqué la instalación compilada en ~/.rbenv/versions/1.9.3-p286, que es donde rbenv guarda las versiones de Ruby.
Todo ha funcionado muy bien y ahora estoy instalando Gems. Sin embargo, una joya en particular aún no se está instalando, lo que me hace pensar que me falta una dependencia. Es una gema interna, por lo que no figura en RubyGems, pero aquí está el resultado de una instalación de gema:
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.
Soy un usuario de Debian, así que realmente no tengo mucha experiencia con paquetes Redhat/RPM y todo eso, así que no estoy seguro de qué dependencias me faltan en mi sistema para instalar esta gema.
¿Alguien puede ayudarme a saber qué paquetes necesito instalar para estos archivos de encabezado que faltan arriba?
Respuesta1
Busque los archivos que faltan:
checking for expat.h... no
checking for xmlparse.h... no
Ahora use yum
para buscar el paquete que proporciona esos archivos:
yum provides */expat.h
Verás varios paquetes aquí. El que estás buscando es el que contiene, /usr/include/expat.h
ya que es el directorio de inclusión estándar. Entonces instala el paquete indicado:
yum install expat-devel
Repita el proceso para el otro archivo:
yum provides */xmlparse.h
Aquí fallará y obtendrá el error No matches found
. En este caso, necesitarás leer el código fuente de la gema o contactar a su desarrollador para averiguar qué paquete pretendía que tuvieras. Debería aparecer en la documentación de la gema como un requisito del sistema (si el desarrollador se molestó en escribir la documentación).