当我这样做时:
ruby extconf.rb
我明白了:
extconf.rb:24:in 'require': no such file to load -- mkmf (LoadError)
当我启动irb
并逐行执行extconf.rb
的所有命令时,它可以正常工作(包括require 'mkmf'
)。
如果明显ruby
可以找到mkmf
,我如何告诉irb
查找{{1}}的位置。
我从源代码(1.9.1)编译了ruby,它被安装在“非标准位置”。
答案 0 :(得分:0)
ruby二进制文件缺少一些$LOAD_PATH
,它甚至可能是系统irb
与您的自定义ruby
之间的冲突。
在任何情况下,您都可以比较ruby -e 'p $:'
的输出和在irb中运行p $:
...
当您找到丢失的目录时,可以在命令行上添加它,如下所示:
$ ruby -I/path/to/missing/loadpath extconf.rb
虽然我认真地建议正确地重新安装ruby,因为这很可能指向一个更深层次的问题,而不仅仅是在这个实例中缺少loadpath。
顺便问一下,如何通过RVM安装ruby?它无痛,在大多数设置上都能完美运行。更不用说你可以在同一台机器上使用多个Ruby版本而不会发生任何冲突。