加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 22:47:45 所属栏目:百科 来源:网络整理
导读:我创建了一个项目特定的.rvmrc文件,其中包含一个自定义gemset(使用命令rvm –rvmrc –create 1.9.2@registration): # excerpt of .rvmrc...environment_id="ruby-1.9.2@registration"if [[ -d "${rvm_path:-$HOME/.rvm}/environments" -s "${rvm_path:-$H
我创建了一个项目特定的.rvmrc文件,其中包含一个自定义gemset(使用命令rvm –rvmrc –create 1.9.2@registration):
# excerpt of .rvmrc...

environment_id="ruby-1.9.2@registration"

if [[ -d "${rvm_path:-$HOME/.rvm}/environments" 
  && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
then
  . "${rvm_path:-$HOME/.rvm}/environments/$environment_id"

  if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]
  then
    . "${rvm_path:-$HOME/.rvm}/hooks/after_use"
  fi
else
  # If the environment file has not yet been created,use the RVM CLI to select.
  if ! rvm --create  "$environment_id"
  then
    echo "Failed to create RVM environment '${environment_id}'."
    return 1
  fi
fi

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

mkdir: cannot create directory `/usr/local/rvm/gems/ruby-1.9.2-p318@registration': Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
-bash: /usr/local/rvm/environments/ruby-1.9.2-p318@registration: Permission denied
mkdir: cannot create directory `/usr/local/rvm/wrappers/ruby-1.9.2-p318@registration': Permission denied

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

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

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

解决方法

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

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

include_recipe "rvm::system"
include_recipe "rvm::vagrant"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读