为什么安装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 --default
和gem 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用户身份运行,或者在运行rvm
或gem
命令时使用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。