为什么安装Rails会出现“写权限”错误?

时间:2013-07-04 06:20:16

标签: ruby-on-rails ruby rvm

当我使用rvm use 1.9.2时,我得到Rails v3.0.0:

vikas@admin1-DL-H61MXEL:~$ rvm use 1.9.2 --default
Using /home/vikas/.rvm/gems/ruby-1.9.2-p320
vikas@admin1-DL-H61MXEL:~$ rails -v
Rails 3.0.0

当我使用rvm use 2.0.0时,我得到Rails v3.2.13:

vikas@admin1-DL-H61MXEL:~$ rvm use 2.0.0
Using /home/vikas/.rvm/gems/ruby-2.0.0-p195
vikas@admin1-DL-H61MXEL:~$ rails -v
Rails 3.2.13

我需要Rails v3.2.13和Ruby 1.9.2。

当我使用rvm use 1.9.2 --defaultgem install rails -v 3.2.13时,出现以下错误:

While executing gem ... (Gem::FilePermissionError) You don't have write permissions into the /home/vikas/.rvm/gems/ruby-1.9.2-p320/bin directory. 

This is the error I'm facing now.

3 个答案:

答案 0 :(得分:21)

您收到错误的最可能原因是:

(Gem::FilePermissionError) You don't have write permissions into the /home/vikas/.rvm/gems/ruby-1.9.2-p320/bin directory. 

是因为,在某些时候,您使用sudo或在使用RVM安装gem时以root身份运行。发生这种情况时,文件和/或文件夹的所有权已更改为root权限,您无法覆盖该权限。

如果您要安装RVM,则不希望以root用户身份运行,或者在运行sudorvm命令时使用gem EVER Ruby位于主目录中的沙箱中。

要解决此问题,请尝试以下命令:

sudo chown -R vikas ~/.rvm

这将使用sudo从“root”用户将〜/ .rvm目录中所有文件的所有权更改为您自己的帐户。这将花费至少几秒钟让它运行。

一旦运行,您应该可以切换到每个Rubies并删除已安装的Rails:

rvm use 1.9.2
gem uninstall rails
gem install rails -v 3.2.13

然后:

rvm use 2.0.0
gem uninstall rails
gem install rails -v [whatever version you want]
gem install rails -v 

答案 1 :(得分:0)

rvm use 1.9.2 --default Using /home/vikas/.rvm/gems/ruby-1.9.2-p320 
gem install rails -v 3.2.13

答案 2 :(得分:0)

rvm是一种软件工具,您可以通过该工具管理系统上的多个版本的红宝石。

对于每个ruby版本,您可以创建一个gemset,它只是一组宝石。

您安装的每个ruby版本都有一个'默认'gemset。

似乎你已经为ruby 1.9.2安装了rails 3.0,为ruby 2.0安装了rails 3.2.13

您可以通过命令

创建自己的gemset
rvm gemset create rails3

这将创建一个名为'rails3'的宝石集并使用它你必须做

rvm gemset use rails3

在这个gemset中你可以安装你想要的任何版本的rails。

使用命令

gem install rails -v='3.2.13'

了解更多信息,请参阅rvm doc。

https://rvm.io/