红宝石如何找到mkmf?

时间:2012-02-06 01:29:31

标签: ruby

当我这样做时:

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,它被安装在“非标准位置”。

1 个答案:

答案 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版本而不会发生任何冲突。