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

Igo*_*eev 11 ruby

我在Ubuntu10上

sudo apt-get install ruby1.9.1-full
Run Code Online (Sandbox Code Playgroud)

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

sudo ruby setup.rb
Run Code Online (Sandbox Code Playgroud)

然后,例如,安装sinatra

sudo gem install sinatra
Run Code Online (Sandbox Code Playgroud)

最后打开irb并输入

require "rubygems"
require "sinatra"
Run Code Online (Sandbox Code Playgroud)

并得到错误

LoadError: no such file to load -- sinatra
    from (irb):2:in `require'
    from (irb):2
    from /usr/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

小智 5

我正是有这个问题。问题是 gem 和 ruby​​ 在 gems 的位置上存在分歧。比较这些:

ruby -e "puts Gem.path"

gem env

gem which sinatra
Run Code Online (Sandbox Code Playgroud)

如果您像我的设置一样,您会注意到 gem env 的路径中有一个条目,但它不在 Gem.path 中,而这正是 sinatra 声称的位置。就我而言,我不得不添加

export GEM_HOME=/usr/lib/ruby/gems/1.9.1
Run Code Online (Sandbox Code Playgroud)

到我的 .profile。然后大家都很开心。