2012-02-06 70 views
0

當我做:紅寶石如何找到mkmf?

ruby extconf.rb 

我得到:

extconf.rb:24:in 'require': no such file to load -- mkmf (LoadError) 

當我啓動irb和它工作正常線從extconf.rb行執行的所有命令(包括require 'mkmf')。

如何告訴ruby在哪裏可以找到mkmf當明顯irb可以找到它。 我從源代碼(1.9.1)編譯ruby,並將其安裝在「非標準位置」。

回答

0

紅寶石二進制文件缺少一些$LOAD_PATH,它可能是系統irb和您的自定義ruby之間的碰撞。

在任何情況下,你可以比較的ruby -e 'p $:'輸出和運行IRB p $: ...

當你找到丟失的目錄,你可以在命令行中添加這樣的:

$ ruby -I/path/to/missing/loadpath extconf.rb 

雖然我會認真地推薦重新安裝紅寶石,因爲這很可能指向更深層次的問題,而不僅僅是在此實例中缺少加載路徑。

順便說一句,如何通過RVM安裝紅寶石?這是無痛的,在大多數設置上完美無瑕。更何況,你可以在同一臺機器上使用多個Ruby版本而不會發生任何衝突。