安装bundler会给我“你没有写权限”错误

时间:2016-06-23 14:31:52

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

我曾使用ruby版本管理器(rvm)来安装新版本的ruby。运行命令rvm rubies会显示已安装的所有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

错误表明未安装bundler。我运行了命令gem install bundle,我收到以下错误。

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /nix/.nix-profile/lib/ruby/gems directory.

它说我没有写权限。我用Google搜索了错误,它与更新ruby和ruby版本有关。我更新到新的ruby版本的原因是因为heroku run rake db:seed没有在生产中播种数据。我可能是因为兼容性问题。因此,我决定更新到新版本的ruby。服务器,postgresql和其他一切正常。我无法运行bundle,因为我无法安装gem。任何肝脏将非常感激。谢谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:-3)

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