2012-02-06 53 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版本而不会发生任何冲突。