web-dev-qa-db-ja.com

RVMをインストールできません。 / usr / local / rvmで許可が拒否されました

以前のスレッドに基づいて: RVM installed by Ruby not working? ここで、rootユーザーを使用してRVMをインストールした場合、RVMのインストールを完全に削除する必要がありました。ユーザーとしてインストールしています。

だから私はやった:

  1. 次のようにして新しいユーザーを作成します。useradd newuser
  2. RVM Webサイトの指示に従い、次のコマンドを実行します:bash <<(curl http://rvm.beginrescueend.com/releases/rvm-install-head

今、私はエラーを受け取ります:mkdir:ディレクトリ `/ usr/local/rvm 'を作成できません:権限が拒否されました

私が作成した新しいユーザーには、このディレクトリへのアクセス権がありません。手動でフォルダを作成しようとしましたが、同じエラーが発生しました。助けてください。

編集:端末を再起動せず、古い設定を使用していたため、元の問題が発生しました。

さて、新しい問題が発生しました:RVMをインストールした後、それを実行できず、エラーが発生します:rvmコマンドが見つかりません。

これが私の〜/ .bash_profileの出力です

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a Shell session.

そして、これは〜/ .bashrcファイルからの出力です

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a Shell session.
19
Yash Desai

RVMは簡単にインストールできますが、インストールの種類を組み合わせて一致させることにより、インストールが難しくなります。新しいユーザーを作成する必要はありません。 RVMを実行すると、ホームディレクトリに~/.rvmというディレクトリが作成され、その中にすべてがインストールされます。つまり、すべての正しい権限が与えられます。 rootで実行する必要はなく、Sudoを使用する必要もありません。すべてのコマンドラインを閉じて1つ新しく開き、ホームディレクトリから開始することをお勧めします。 rootとして実行している場合は、ログアウトして、通常のアカウントに再度ログインします。シングルユーザーインストールの場合、ルートである必要はありません。

シングルユーザーの場合、RVMをRubyサンドボックスとして使用します シングルユーザーインストールドキュメント を使用します。フォロー[〜#〜 ] all [〜#〜]そのページの指示、[〜#〜]含む[〜#〜]「ポストインストール」セクション。

ターミナルウィンドウを閉じて、再度開きます。上記の手順を正しく実行した場合、rvm infoと入力すると、Rubyインスタンスをインストールすると、次のテンプレートが表示されます。何も出力されない場合、またはエラーが発生した場合は、「インストール後」セクションの手順をたどって、「トラブルシューティング」セクションに進んでください。指示を読まなくても問題が発生することがほとんどです。

RVMがインストールされたら、rvm notesと入力し、インストールする必要がある依存関係を読みます。これらのファイルを追加しないと、インストールされているルビーの機能が失われます。それらは機能しますが、あなたが聞くクリーチャーの快適さのいくつかは機能せず、なぜ不思議に思うでしょう。

依存関係をインストールした後、Rubiesをインストールするための良好な状態になるはずです。 rvm list knownと入力して、Rubies RVMがインストールできるすべての情報を取得します。 1.8.7が必要な場合はrvm install 1.8.7と入力し、同様にrvm install 1.9.2 for Ruby 1.9.2。特定のリビジョンが必要な場合は、リストにあるもの。

rvm get headを使用してRVMを定期的に更新することが重要です。これにより、機能が追加され、バグが修正され、RVMにRubyの新しいバージョンが要求された場合にインストールできることが通知されます。

Rubyをインストールした後、rvm listと入力すると、リストに次のように表示されます。

 rvmルビー
 
 Ruby-1.8.7-p334 [x86_64] 
 Ruby-1.9.2-p180 [x86_64] 

rvm use 1.9.2 --defaultと入力して、デフォルトを設定しますRubyログイン間で固定されます。1.9の場合にデフォルトにするデフォルトのRubyのバージョンを使用してください。 2はボートをフロートさせません。デフォルトを定義すると、次のようになります。

 rvmルビー
 
 Ruby-1.8.7-p334 [x86_64] 
 => Ruby-1.9.2-p180 [x86_64] 

RVMで管理されているRubyにgemをインストールする前に、 "RVM and RubyGems" を読んでください。特に、「Sudoを使用しないでください...」と書かれています。繰り返します。ブログやWebページに書かれていることに関わらず、Sudoを使用して宝石をインストールしないでください。 RVMの作者は、RVMで制御されたルビーを操作することについてよく知っています。これも、ユーザーがRVMで使用するもう1つの間違いです。これも、指示を読み取っていないためです。

Mac OSでは、OSに最新バージョンのXCodeが必要です。 Snow Leopardに付属のXCodeをDVDで使用しないでください。バギーです。 Appleの開発者サイト から新しいバージョンをダウンロードしてインストールします。それは無料の登録を必要とする無料のダウンロードです。これは約8 GBの大きなファイルなので、起動して立ち去る必要があります。 XCodeをインストールすると、RVMにRubiesをインストールする準備が整います。

最後に、RVMは簡単にインストールでき、インストールを要求したルビーも同様です。 Mac OS、Ubuntu、CentOSの4つまたは5つの異なるマシンとVMで使用しています。インストールには1分ほど、設定して新しいRubyのインストールを開始するには1分ほどかかります。本当に簡単です。

18
the Tin Man

mkdir:ディレクトリ `/ usr/local/rvm 'を作成できません:権限が拒否されました

以前にrootとしてrvmインストーラーを実行したことがある場合は、/ usr/local/rvmおよび/ etc/rvmrcを削除します。

67
tristan

この質問では、rvmをインストールしようとしたときに「mkdir:ディレクトリ `/ usr/local/rvm 'を作成できません:権限が拒否されました」という問題が報告されました。

これは私のシナリオであり、私がそれをどのように解決したかです-これは同じ問題を持つ他の人を助けるでしょう.

私はラップトップにUbuntu 11.04をインストールしていますが、nathanという名前のユーザーが1人しかいません。 rvmをnathanとしてインストールしようとすると、rvmインストーラーは私をrootとして認識し、rvmをグローバルにインストールしようとし続けましたが、実際にはrootでなかったため、/ usr/local/rvmにディレクトリを作成するためのアクセス権を取得できませんでした。

私はUbuntuの専門家とはほど遠いので、私がやったことを達成するためのより簡単でより良い方法があると確信しています(そして、それらについて学びたいと思います)が、これは私にとってうまくいきました:

  1. Rubydevという新しいユーザーを作成しました
  2. Rubydevとしてログインし、ターミナルを開いて次のように入力しました。

    rubydev~$ bash < <(curl -B http://rvm.beginrescueend.com/install/rvm)
    
  3. rvmが正しくインストールされ、rubydevからログアウトした

  4. Nathanとして再度サインインし、ターミナルを開いて「su」と入力しました(これはすべてSudoで実行できます。私は怠惰です)
  5. ルートを取得した後、次のコマンドを入力しました。

    root: /home/nathan# cp -R /home/rubydev/.rvm .
    
    root: /home/nathan# chown -R nathan .rvm
    
    root: /home/nathan# chgrp -R nathan .rvm
    
    root: /home/nathan# exit
    
    nathan~$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
    
    nathan~$ echo 'export rvm_path="/home/nathan/.rvm"' > ~/.rvmrc
    
    nathan~$ source .bash_profile
    
  6. この時点で、rvmはホームディレクトリに正しくインストールされました。入力したことを確認するには:

    nathan~$ type rvm | head -1
    rvm is a function (if you don't get this response, something else is wrong)
    
  7. ノートを読み、依存関係をインストールしました

    nathan~$ rvm notes
    
  8. ルビーをいくつかインストールしました

    nathan~$ rvm install 1.8.7-head
    nathan~$ rvm install 1.9.2-head
    
  9. 検証済みインストール

        nathan~$ rvm list
    
        rvm rubies
            Ruby-1.8.7-head [x86_64]
            Ruby-1.9.2-head [x86_64]
    
        nathan~$ rvm use 1.9.2
        using /home/nathan/.rvm/gems/Ruby-1.9.2-head
    
        nathan~$ rvm list
    
        rvm rubies
           Ruby-1.8.7-head [x86_x64]
        => Ruby-1.9.2-head [x86_x64]
    
  10. 最後に、ターミナル自体の設定を編集して、[タイトルとコマンド]タブの[ログインシェルとしてコマンドを実行]がオンになっていることを確認します。 .bash_profileは他の方法では処理されないようです。

  11. 手順1で作成したrubydevユーザーを削除しました。

以上のことで、Ubuntu 11.04の下で好みのユーザー名を使用してrvmが機能しています。

6
Nathan Ratcliff

最初にRVMをrootとしてインストールしてからアンインストールした場合。そして今、あなたはそれを非Sudoユーザーとしてインストールしようとしていて、次のエラーが発生しています:

mkdir: cannot create directory `/usr/local/rvm': Permission denied

ユーザーの下でインストールを試みる前に、ルートセッションからログアウトしていることを確認してください。

5
Scott Bartell

私はこれを追加して解決しました

export rvm_path=~/.rvm

〜/ .bash_profileに

4
glebtv

同じ問題がありました。ジェムセットを作成しようとすると、権限拒否エラーが発生しました。最初に「rvm use 1.8.7」コマンドを実行するのを忘れました。その後、問題なく宝石セットを作成して使用することができました。

2
Diego

/ etcディレクトリの下でファイルrvm.shを探します(/ etcまたは/etc/init.dにある場合があります)。また、いくつかのgrep rvm/etc -rを試してください。これにより、$ HOMEディレクトリにrvmをインストールできないファイル/行を見つけることができます。

2
kaineer

RVMをユーザーとしてインストールする場合は、RVMフォルダーをホームディレクトリに生成する必要があります。

~/.rvm 

アクセス許可の問題がまったくない場所。

私はそれがあなたのシステムインストールから残っているいくつかの古い設定をピックアップしていることをお勧めします。

/ etc/rvmrcまたは$ HOME/.rvmrcファイルが残っていないことを確認してください。これらのファイルから以前に初期化された変数を使用して、誤ったインストールパスを構築している可能性があるためです。

bashスクリプトのこのセクションを見ると:

if [[ ${rvm_ignore_rvmrc:-0} -eq 0 ]]; then
  for file in /etc/rvmrc "$HOME/.rvmrc  " ; do
    if [[ -s "$file" ]] ; then
      source $file
    fi
  done
fi

これらのファイルの1つを見つけようとしています。もしそれが実行された場合、rvm_pathを初期化する可能性があります。このコマンドでは、その後、$ HOME/.rvmとして設定されません。

rvm_path="${rvm_path:-"$HOME/.rvm"}"
2
rogermushroom

私のために

__rvm_unload

最初に動作したのは、マルチユーザーの場合と同じようにrvmがインストールされているためです。

2
Calin

最後のバージョンのrvmでは、/ etc/profile.d /も削除する必要があります。

これは、rootとしてインストールしてから、通常のユーザーとして再試行した場合によく発生します。

この助けを願っています。

2
johananp

スコット・バーテルの解決策は私にとってうまくいきました。私はDigital Oceanの既製の画像を使用しています。彼らはすでにrootとしてrvmを設定しています。 1./etc/rvmrcを削除しました。 2. export rvm_path =〜/ .rvmを〜/ .bash_profileに追加3.仮想マシンへのsshセッションからログアウト4.ログインして再度ログイン

コメントしたはずですが、担当者は3ポイント低すぎます:)

0
user2550943

Rootとしてrvmをインストールしていて、権限拒否の問題が発生している場合(おそらくroot以外のユーザーとしてcapistranoを使用してデプロイしている場合)、rvm fix-permissionsなどをrootとして実行し、gemsetを作成した後、rvm install 2.2.2を試すことができます。ルートとして。

0
Jason R