我在MacOSXYosemite10.10Beta3上运行,我重新安装了rvm(删除了我能想到的所有东西,重新安装了整个程序)。
尝试运行一个我在小牛队工作过的脚本。

Maxims-MacBook-Air:AppleSampleCodeWorker maximveksler$ gem install restclient
Successfully installed restclient-0.10.0
Parsing documentation for restclient-0.10.0
Done installing documentation for restclient after 0 seconds
1 gem installed
Maxims-MacBook-Air:AppleSampleCodeWorker maximveksler$ which irb
/Users/maximveksler/.rvm/rubies/ruby-2.1.2/bin/irb
Maxims-MacBook-Air:AppleSampleCodeWorker maximveksler$ irb
2.1.2 :001 > require 'restclient'
LoadError: cannot load such file -- restclient
    from /Users/maximveksler/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/maximveksler/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from (irb):1
    from /Users/maximveksler/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main>’

路径看起来正常
Maxims-MacBook-Air:AppleSampleCodeWorker maximveksler$ env | grep GEM
GEM_HOME=/Users/maximveksler/.rvm/gems/ruby-2.1.2
GEM_PATH=/Users/maximveksler/.rvm/gems/ruby-2.1.2:/Users/maximveksler/.rvm/gems/ruby-2.1.2@global

同时安装了gem
Maxims-MacBook-Air:AppleSampleCodeWorker maximveksler$ file /Users/maximveksler/.rvm/gems/ruby-2.1.2/gems/restclient-0.10.0/lib/rest_client.rb
/Users/maximveksler/.rvm/gems/ruby-2.1.2/gems/restclient-0.10.0/lib/rest_client.rb: ASCII C++ program text

那我错过了什么?

最佳答案

查看链接here,您的语法有错误。它应该是require 'rest_client'而不是require 'restclient'您的版本仍然可以工作的原因正如您所说的,因为有一个名为restclient.rb的文件用作gem提供的附加restclient二进制文件的源(这违反了常规的命名约定,您应该向github提交一个问题)。
现在,因为您需要这个文件(restclient.rb)来设置一个已经RestClient可用的环境,所以它实际上与需要rest_client相同但是,它可能会产生意外的后果,因此您可能应该遵守文档中概述的约定。
这都是通过阅读here文档和浏览here文件得到的。这有道理吗我担心这是不清楚的,因为这两个文件是非常相似的。

关于ruby - rvm不导入gem路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24699021/

10-09 21:03