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

时间:2010-05-31 18:02:07

标签: ruby

我在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 `<main>'

5 个答案:

答案 0 :(得分:4)

我确实遇到了这个问题。问题是宝石和红宝石不同意宝石的居住地。比较这些:

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。然后大家都很高兴。

答案 1 :(得分:3)

执行

sudo gem install sinatra --verbose

并记下安装gem的路径。

然后在irb中尝试这个

puts $LOAD_PATH

并确保gem安装在$LOAD_PATH

中的一个目录中

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

答案 2 :(得分:2)

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

require 'rubygems'

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

答案 3 :(得分:1)

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

$ which -a ruby

或者这个:

$ which -a gem

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

答案 4 :(得分:0)

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

require 'watir'
require 'rubygems'
# more code

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

顺便说一下,我试过用户24359回答它并没有帮助我。

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