我有一个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;
即使我已经运行
,也会发生这种情况
bundle install
&#13;
并且所有必需的宝石都包含在gem文件中。通过
手动卸载并重新安装各个宝石,我获得了进步
gem uninstall <gem_name>
gem install <gem_name>
&#13;
但它继续抱怨一个又一个丢失的宝石。然后我使用
卸载所有宝石
for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done
&#13;
之后,捆绑安装仍然就像所有宝石都已安装一样。但是导轨仍然不起作用并且抱怨失踪的宝石。我现在该怎么办?
答案 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'
最后使用
捆绑列表
检查捆绑包是否已在其中初始化所有宝石。