尽管捆绑安装,但未发现Ruby Gems

时间:2017-03-22 02:16:20

标签: ruby-on-rails ruby ruby-on-rails-3 rubygems bundler

我有一个Rails应用程序。我的合作者更新了应用程序的Ruby版本并添加了Gems。我不得不将我当地的Ruby版本更新为2.3.1。

现在看来rails会在不同的位置寻找宝石,而不是捆绑安装放置它们。我需要做些什么才能在同一个地方放置和寻找宝石?

具体来说,当我尝试使用

启动Rails服务器时



rails s




我收到了消息



/Users/Falk/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/dependency.rb:319:in `to_specs': Could not find 'railties' (>= 0) among 5 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/Falk/.gem/ruby/2.3.0:/Users/Falk/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0', execute `gem env` for more information
	from /Users/Falk/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/dependency.rb:328:in `to_spec'
	from /Users/Falk/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:65:in `gem'
	from /usr/local/bin/rails:22:in `<main>'
&#13;
&#13;
&#13;

即使我已经运行

,也会发生这种情况

&#13;
&#13;
bundle install
&#13;
&#13;
&#13;

并且所有必需的宝石都包含在gem文件中。通过

手动卸载并重新安装各个宝石,我获得了进步

&#13;
&#13;
gem uninstall <gem_name>
gem install <gem_name>
&#13;
&#13;
&#13;

但它继续抱怨一个又一个丢失的宝石。然后我使用

卸载所有宝石

&#13;
&#13;
for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done
&#13;
&#13;
&#13;

之后,捆绑安装仍然就像所有宝石都已安装一样。但是导轨仍然不起作用并且抱怨失踪的宝石。我现在该怎么办?

2 个答案:

答案 0 :(得分:2)

我可以按照此处列出的步骤解决此问题: bundle uses wrong ruby version

答案 1 :(得分:0)

转到您尝试运行的服务/存储库,然后转到bin / bundle文件。打开文件,你会发现这样的代码片段:

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
load Gem.bin_path('bundler', 'bundle')

如此处所述,更改gemfile的路径,然后在您的服务/存储库中找到您的gemfile。通过检查其源代码提供正确的目录路径。之后将所有宝石都包含在gem文件中,如下所示:

gem 'protobuf'
gem 'grpc'
gem 'protobuf-activerecord'

最后使用

  

捆绑列表

检查捆绑包是否已在其中初始化所有宝石。