Ruby无法识别来自本地源的gem,包含在Gemfile中

时间:2016-07-17 12:34:27

标签: ruby rubygems bundler gemfile

之前我从本地资源中遇到了一些宝石问题,所以建立了一个简单的测试项目。我以前没有安装过simple-rss。这是我的Gemfile:

source 'https://rubygems.org'

gem 'simple-rss', :path => '~/code/simple-rss'

然后我运行bundle install,它告诉我:

Using simple-rss 1.2.3 from source at `~/code/simple-rss`
Using bundler 1.12.4
Bundle complete! 1 Gemfile dependency, 2 gems now installed.

然后我将test.rb放在与Gemfile相同的文件夹中。 test.rb文件现在只有require

require 'simple-rss'

我运行ruby test.rb,并收到此错误:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- simple-rss (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from test.rb:1:in `<main>'

这是问题的第一个证据。然后我做了:

sudo gem install simple-rss

成功安装它。我再次ruby test.rb,并没有遇到任何问题。因此,一旦安装了gem安装后,它就可以从原始源运行gem,但是在运行之后不能从本地源运行捆绑。

1 个答案:

答案 0 :(得分:3)

如果你想使用你的Gemfile中指定的宝石,我建议你的命令前缀为bundle exec,例如。 bundle exec ruby test.rb。否则你的Ruby就不会知道它们了。