我在“gem列表”中看到gem但是“没有这样的文件加载”

我在Ubuntu10上

sudo apt-get install ruby1.9.1-full 

然后下载rubygem 1.3.7的源代码并安装它

 sudo ruby setup.rb 

然后,例如,安装sinatra

 sudo gem install sinatra 

最后打开irb并键入

 require "rubygems" require "sinatra" 

并得到错误

 LoadError: no such file to load -- sinatra from (irb):2:in `require' from (irb):2 from /usr/bin/irb:12:in `' 

我有这个问题。 问题是gem和ruby不同意gem的居住地。 比较这些:

 ruby -e "puts Gem.path" gem env gem which sinatra 

如果你喜欢我的设置,你会发现gem env的路径中有一个不在Gem.path中的条目,而这正是sinatra声称的那个。 就我而言,我不得不补充一下

 export GEM_HOME=/usr/lib/ruby/gems/1.9.1 

到我的.profile。 然后大家都很高兴。

执行

 sudo gem install sinatra --verbose 

并记下安装gem的路径。

然后在irb中尝试这个

 puts $LOAD_PATH 

并确保gem安装在$LOAD_PATH其中一个目录中

理想情况下,只需开始使用http://rvm.beginrescueend.com/

当我忘记时,我经常遇到这个错误:

 require 'rubygems' 

但是,如果您提供了实际的代码示例,那么您将需要什么样的gem,以及如果这不能解决问题,那么您正在使用的Ruby版本会很有用。

这是在此之前的很多次。 问题是你可能有两个版本的ruby。 一个是安装gem,另一个是试图使用它。 在终端中执行此操作:

 $ which -a ruby 

或这个:

 $ which -a gem 

看看你是否安装了多个版本的ruby / gem。 如果是这样 – 删除一个版本(通过系统的$ rm或包管理器)。

我使用ruby gems 1.8.7进行项目。 我得到了同样的错误。 使用行require 'rubygems' 。 它必须始终是第一个require语句,否则您可能会收到错误。 在我的代码中,我有

 require 'watir' require 'rubygems' # more code 

我得到了错误 – 在`require’:没有这样的文件加载 – watir(LoadError)。 当我首先放入rubygems时,错误消失了,一切正常。 我不知道为什么会这样。

顺便说一句,我试过user24359的答案,它没有帮助我。

 C:\code>ruby -e "puts Gem.path" -e:1: uninitialized constant Gem (NameError)