Centos

RubyGem 安裝找不到標頭檔

  • May 17, 2013

我在 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 安裝的輸出:

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。

誰能幫我知道我需要為上面缺少的這些缺少的標頭檔安裝哪些軟體包?

查找失去的文件:

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 的文件中(如果開發人員費心編寫文件)。

引用自:https://serverfault.com/questions/508802