好的,我刚刚花了 4 个小时试图解决这个问题,但没有成功。我已经尝试了所有常见的嫌疑人,并用谷歌搜索了 ruby 1.9.1、加载路径、gems、mac os x、freebsd、prawn 和其他东西的每个组合。底线是这个:
当我从 mac os x 10.5 上的源代码编译 ruby1.9.1-p129 时,我得到的默认加载路径 ($:) 是:
ruby -e "输入 $:" /usr/local/lib/ruby/gems /usr/local/lib/ruby/site_ruby/1.9.1 /usr/local/lib/ruby/site_ruby/1.9.1/i386-darwin9.7.0 /usr/local/lib/ruby/site_ruby /usr/local/lib/ruby/vendor_ruby/1.9.1 /usr/local/lib/ruby/vendor_ruby/1.9.1/i386-darwin9.7.0 /usr/local/lib/ruby/vendor_ruby /usr/local/lib/ruby/1.9.1 /usr/local/lib/ruby/1.9.1/i386-darwin9.7.0 .
例如,当我安装虾 gem 时,我得到:
大虾的宝石 (检查 gem prawn-0.5.0.1 for prawn) /虾.rb
当我尝试要求它时,我得到:
ruby -e "需要'大虾'" -e:1:in `require': 没有要加载的文件 -- prawn (LoadError) 从 -e:1:in `'
我能够解决这个问题的唯一方法是做一些像这样愚蠢的事情:
$: << "/usr/local/lib/ruby/gems/1.9.1/gems/prawn-0.5.0.1/lib"
当然,这完全是荒谬的。所以问题是如何让 ruby 1.9.1 识别并遵循正确的 gems 路径?我从来没有遇到过 1.8.7 的这个问题,所以我假设它是 1.9.1 特定的。我觉得我在这里遗漏了一些完全明显的东西,任何帮助将不胜感激!