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

标签 ruby rubygems bundler gemfile

我之前在使用本地来源的 gem 时遇到过一些问题,因此设置了一个简单的测试项目。我之前没有安装过 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 install 安装了 gem,就可以从原始源运行 gem,但在使用 Bundler 运行后就不能从本地源运行。

最佳答案

如果您想使用 Gemfile 中规定的 gem,我建议您在命令前加上 bundle exec 前缀,例如。 bundle 执行 ruby​​ test.rb。否则你的 Ruby 将不知道它们。

关于Ruby 无法识别 Gemfile 中包含的本地来源的 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38421247/

相关文章:

ruby - Ruby 纤程可以并发吗?

ruby-on-rails - 没有要加载的文件——rubygems (LoadError)

ruby-on-rails - 乘客错过了生产环境中的开发 gem

ruby - 无法使用 ruby​​ 2.0 安装 bundler 1.3.0

Ruby 解码字符串

ruby - 如何编写惰性评估 switch 语句?

ruby-on-rails - 你说 "rake install"之后要执行什么步骤?

ruby-on-rails - Rails - 为什么是 "source ' https ://rubygems. org' "giving -bash No such file or directory"

ruby-on-rails - Rails3 服务器和 bundler 错误 : uninitialized constant Bundler (NameError)

ruby - 使用 Apache 托管 Ruby gem