【发布时间】:2016-10-25 23:09:35
【问题描述】:
我使用 ruby 版本管理器 (rvm) 安装了新版本的 ruby。运行命令rvm rubies显示所有已安装的红宝石版本。清单如下。
rvm rubies
ruby-1.9.3-p551 [ x86_64 ]
ruby-2.1.5 [ x86_64 ]
ruby-2.2.4 [ x86_64 ]
* ruby-2.3.0 [ x86_64 ]
ruby-2.3.1 [ x86_64 ]
# => - current
# =* - current && default
# * - default
我尝试运行命令bundle exec rake rb:mgirate,但出现以下错误。
/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/dependency.rb:319:in `to_specs': Could not find 'bundler' (>= 0.a) among 5 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=:/nix/.nix-profile/lib/ruby/gems', execute `gem env` for more information
错误表明未安装捆绑程序。我运行了命令 gem install bundle 并收到以下错误。
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /nix/.nix-profile/lib/ruby/gems directory.
它说我没有写权限。我用谷歌搜索了这个错误,它与更新 ruby 和 ruby 版本有关。我更新到新的 ruby 版本的原因是 heroku run rake db:seed 没有在生产中播种数据。我虽然这可能是由于兼容性问题。因此,我决定更新到新版本的 ruby。服务器、postgresql 和其他一切工作正常。我无法运行 bundle,因为我无法安装 gem。任何 hep 将不胜感激。谢谢!
【问题讨论】:
-
尝试运行
sudo chown -R `whoami` /nix/.nix-profile/lib/ruby/gems -
@mudasobwa,我能够修复它。我必须为用户指定哪个版本。我只是运行 rvm use 2.3.0 ,它既是当前版本又是默认版本。它解决了问题
-
@mudasobwa,我尝试打开 rails db 并收到此错误。在总共 5 个 gem (Gem::LoadError) 中找不到 'railties' (>= 0.a)。我认为问题可能仍然存在。
-
你在
bundle install那里跑了吗? -
@mudasobwa,不,我没有。我切换到了不同的 ruby 版本,因此我的 gem 依赖项也被切换了。一旦我重新启动我的工作区,它就修复了所有问题。
标签: ruby-on-rails ruby ruby-on-rails-3