6

.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

これは、シングルユーザー RVM を使用して、私の Mac でローカルに動作します。また、Vagrantボックスにシステム全体のRVMをインストールしてVagrantを使用しています。ただし、cdプロジェクト ディレクトリに移動して.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 を使用できるようにするにはどうすればよいですか?

4

3 に答える 3

9

rvm問題は、私が使用していた単純な Chef レシピが vagrant ユーザーをグループに追加していないことであることが判明しました。これは、次のようにすることで実現できます。

sudo usermod -a -G rvm vagrant

しかし、これらのレシピを使用して完全に機能する、より堅牢な RVM Chef クックブックに切り替えることにしました。

include_recipe "rvm::system"
include_recipe "rvm::vagrant"
于 2012-03-15T22:02:41.357 に答える
1

'sudo'の前に追加してみてくださいrvm commandsruby@registrationシステム全体にインストールされますが、ユーザーごとに動作するはずです。

于 2012-03-15T19:19:06.637 に答える
0

私にとっての問題は、ホーム ディレクトリ (ユーザー インストール) に .rvm がインストールされていたのに、どうにかしてそのディレクトリを root:root によって所有されていたことです。

ls -al /home/darren *drwxr-xr-x 2 root root 4096 Oct 18 16:46 .rvm*

sudo chown darren:rvm .rvm -R

sudo useradd darren rvm

于 2012-10-26T04:01:23.970 に答える