安装捆绑器给我 "you don't have write permissions" 错误

Installing bundler gives me "you don't have write permissions" error

我使用 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 和其他一切工作正常。我无法 运行 捆绑包,因为我无法安装 gem。任何帮助将不胜感激。谢谢!

问题已通过 运行 命令 rvm user 2.3.0 切换到 ruby 版本 2.3.0 得到解决。完成后,您应该重新启动工作区。错误的原因是当您切换 ruby 版本时它也会更改 gem 文件。因此,它无法识别 gems。

嘿,只需在命令开头添加“sudo”。它肯定会起作用,因为正如错误所说,您没有写权限。而且,如果您检查该目录的权限,您会发现只有所有者具有写权限,并且 sudo 将我们从用户模式带到所有者模式。因此您不会再收到此错误。如果它不起作用,请告诉我。