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

当我使用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. 

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

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

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

您不希望以root用户身份运行,或者在运行rvmgem命令时使用sudo EVER ,如果您安装了RVM以在主目录中的沙箱中提供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 
 rvm use 1.9.2 --default Using /home/vikas/.rvm/gems/ruby-1.9.2-p320 gem install rails -v 3.2.13 

rvm是一个软件工具,您可以通过它来管理系统上的多个版本的ruby。

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

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

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

你可以通过命令创建自己的gemset

 rvm gemset create rails3 

这将创建一个名为’rails3’的gem集并使用它你必须这样做

 rvm gemset use rails3 

在这个gemset中,您可以安装任何版本的rails。

用命令

 gem install rails -v='3.2.13' 

有关更多信息,请参阅rvm doc。

https://rvm.io/