web-dev-qa-db-ja.com

RVMを使用したGemのインストール

RVMを使用してGemをインストールしようとすると、このエラーが発生します

$ rvm gem install sproutcore
ERROR:  While executing gem ... (Errno::EACCES)
Permission denied - /home/tee/.gem/specs

しかし、それはあなたがSudoを使用すべきではないとrvmサイトで言っているので、私は私のセットアップの何が間違っているのかわかりません

$ GEM_HOMEと入力すると、ディレクトリがrvm dirを指していることが示されます

$GEM_HOME
bash: /home/tee/.rvm/gems/Ruby-1.8.7-p302: is a directory

私が間違っていることはありますか?

21
tee

.gemフォルダーに権限の問題があります。所有者が現在のユーザーであることを確認します。

Sudo chown -R tee /home/tee/.gem

機能しない場合は、.gemフォルダーを削除します。 gemキャッシュを更新すると、自動的に作成されます。

また、rvmでSudoを使用したことがないことを確認してください。

19
Simone Carletti

私も同じ問題を抱えていました。このコマンドをやり直しました

user $ソース〜/ .rvm/scripts/rvm

新しいターミナルウィンドウから(rvmのインストール時に提案され、rvmのインストール時に見落とされた可能性があります)、その後は問題ないように見えました

15
freemoth

http://rvm.io/set/gem/

あるいは単に

 $ rvm <Ruby_version> 
 $ gem install sproutcode 

これは間違いなく動作するはずです。

6
Rishav Rastogi

おそらく正しい方法ではありませんが、rvmsudoを使用すると問題が解決することがわかりました。

rvmsudo gem install Rails

2
tee

RVMがグローバルに/ usr/local/rvmにインストールされていて、Rubyディレクトリにgemをインストールする権限がなかったため、同じ問題が発生していました。

回避策は、シングルユーザーインストールを使用することです。これにより、rvmがユーザーのホームディレクトリ(〜/ .rvm)にインストールされ、gemsetとgemをインストールするために必要なすべての権限が付与されます。

件名を知りたい場合は、 https://rvm.io/rvm/install をお読みください。シングルユーザーインストールが推奨されていることがわかります。

1
Rodrigo Dias