Ruby 我在“中看到宝石”;创业板名单;但我们有;“没有要加载的此类文件”;

Ruby 我在“中看到宝石”;创业板名单;但我们有;“没有要加载的此类文件”;,ruby,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):

我在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>'
LoadError:没有要加载的文件--sinatra
from(irb):2:in'require'
来自(irb):2
from/usr/bin/irb:12:in`'

我通常会在忘记以下内容时出错:

require 'rubygems'

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

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

$ which -a ruby
或者这个:

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

执行

sudo gem install sinatra --verbose
并注意gem的安装路径

然后在irb中尝试这个

puts $LOAD_PATH
并确保gem安装在
$LOAD\u PATH


理想情况下,只要开始使用,我就有这个问题。问题是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

到我的个人资料。然后每个人都很高兴。

我在一个项目中使用ruby gems 1.8.7。我也犯了同样的错误。使用行
要求“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)

你能说得更具体些吗?在什么情况下,你能引用错误吗?请尝试重新安装并传递详细信息,以了解发生了什么。我当前使用的一本教科书()中突出显示了此问题。准备好尽快获得“热门问题”徽章。在阅读工程长效软件(SaaS book)后来到这里@J.Hendrix:出于同样的原因。也许现在是这个问题真正开始的时候了。从1.9开始,你不需要rubygems@Isaac坎布伦-这是真的,这就是为什么我要求更多的细节。此后,OP提供了这些信息。在这一点上,答案显然与此特定用户无关,但我将其留作参考:)+1我认为调整加载路径中的目录集更容易(如我的答案所示),但显然这也会起作用。我有一个ruby和一个gem:)