我在 CentOS 5.3 上运行 Ruby 1.9.3。我通过从源代码编译 Ruby 1.9.3 以及 libyaml 来安装它。我还使用 rbenv 来管理版本,因此我将编译后的安装放在 ~/.rbenv/versions/1.9.3-p286 中,这是 rbenv 保存 Ruby 版本的地方。
一切都运行良好,我现在正在安装 Gems。但是,有一个特定的 gem 尚未安装,这让我认为我可能缺少依赖项。这是一个内部 gem,因此未在 RubyGems 上列出,但这是 gem install 的输出:
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.
我是一名 Debian 用户,因此对 Redhat/RPM 包和其他包并没有太多经验,因此我不确定我的系统上缺少哪些依赖项才能安装这个 Gem。
有人能帮助我知道我需要安装哪些软件包来修复上面缺少的头文件吗?
答案1
查找缺失的文件:
checking for expat.h... no
checking for xmlparse.h... no
现在用来yum
搜索提供这些文件的包:
yum provides */expat.h
您将在这里看到多个包。您要查找的是包含以下内容的包,/usr/include/expat.h
因为这是标准包含目录。因此安装指示的包:
yum install expat-devel
对另一个文件重复该过程:
yum provides */xmlparse.h
在这里您将失败并收到错误No matches found
。在这种情况下,您需要阅读 gem 源代码或联系其开发人员以了解他/她希望您拥有什么包。它应该在 gem 的文档中列为系统要求(如果开发人员愿意写文档的话)。