ruby – RVM:在系统范围的安装中从.rvmrc文件加载gemset时被拒绝

前端之家收集整理的这篇文章主要介绍了ruby – RVM:在系统范围的安装中从.rvmrc文件加载gemset时被拒绝前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个项目特定的.rvmrc文件,其中包含一个自定义gemset(使用命令rvm –rvmrc –create 1.9.2@registration):
  1. # excerpt of .rvmrc...
  2.  
  3. environment_id="ruby-1.9.2@registration"
  4.  
  5. if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
  6. && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
  7. then
  8. \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
  9.  
  10. if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]
  11. then
  12. . "${rvm_path:-$HOME/.rvm}/hooks/after_use"
  13. fi
  14. else
  15. # If the environment file has not yet been created,use the RVM CLI to select.
  16. if ! rvm --create "$environment_id"
  17. then
  18. echo "Failed to create RVM environment '${environment_id}'."
  19. return 1
  20. fi
  21. fi

这可以在我的Mac上本地使用单用户RVM.我们还使用Vagrant在我们的Vagrant盒子上安装了系统范围的RVM.但是,当我们进入项目目录并接受.rvmrc文件时,它会产生以下消息(是的,有很多重复的错误消息):

  1. mkdir: cannot create directory `/usr/local/rvm/gems/ruby-1.9.2-p318@registration': Permission denied
  2. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  3. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  4. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  5. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  6. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  7. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  8. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  9. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  10. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  11. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  12. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  13. -bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
  14. mkdir: cannot create directory `/usr/local/rvm/wrappers/ruby-1.9.2-p318@registration': Permission denied

尝试手动创建gemset会提到相同的错误,但也提到它是成功的:

  1. $rvm use 1.9.2
  2. Using /usr/local/rvm/gems/ruby-1.9.2-p318
  3. $rvm gemset create registration
  4. mkdir: cannot create directory `/usr/local/rvm/gems/ruby-1.9.2-p318@registration': Permission denied
  5. 'registration' gemset created (/usr/local/rvm/gems/ruby-1.9.2-p318@registration).

我有错误的配置吗?如何解决此问题,以便我可以使用.rvmrc文件中的自定义gemset?

解决方法

问题是我使用的简单Chef配方没有将vagrant用户添加到rvm组.这可以通过这样做来实现:
  1. sudo usermod -a -G rvm vagrant

但是我决定改用更多的robust RVM Chef cookbook,使用这些食谱完美地工作:

  1. include_recipe "rvm::system"
  2. include_recipe "rvm::vagrant"

猜你在找的Ruby相关文章