35

すべての gem インストールで、sudo を実行する必要がありますか? そう

須藤宝石インストールレール

動作しますが、

gem インストールレール

動作しないでしょう。どうすれば治りますか?

rvm をインストールしました -

murtaza@murtaza-dev:~$ which rvm
/home/murtaza/.rvm/bin/rvm

murtaza@murtaza-dev:~$ which gem
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem

ただし、gemで操作を行うと、この警告も表示されます-

murtaza@murtaza-dev:~$ gem
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777

編集

curl -L get.rvm.io | bash -s stable --auto(sudoなしで)使用してrvmを再インストールしました。

ただし、gemをインストールしようとすると、次のエラーが表示されます-

murtaza@murtaza-dev:~$ gem install rails
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied - /home/murtaza/.gem/specs

編集

私は全体をchownしましたが、それでもエラーが発生します-

murtaza@murtaza-dev:~$ sudo chown murtaza.murtaza -R ~/.rvm/*


 murtaza@murtaza-dev:~$ gem install rails
    /home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
    ERROR:  While executing gem ... (Errno::EACCES)
        Permission denied - /home/murtaza/.gem/specs
4

7 に答える 7

31

chown全体.rvmで使用し、.gemディレクトリをユーザーに戻します。おそらくsudo以前に使用していたもので、権限が台無しになりました。

sudo chown -R username:group ~/.rvm
sudo chown -R username:group ~/.gem

もちろん、ユーザー名をユーザー名に変更しグループをグループに変更します

于 2012-07-25T06:53:20.613 に答える
19

sudo なしでインストールすると、Ruby はインストール先を認識できません。デフォルトでどこにインストールされるのか思い出せません。おそらく ~/.gems か何かのような場所です。いずれにせよ、GEM_HOME 環境変数を設定することで、インストールされている場所を Ruby に伝えることができます。

$ # assuming your gems are stored in ~/.gems
$ GEM_HOME="$HOME/.gems" ruby my_program.rb

それが機能する場合は、 ~/.bashrc に入れることができます (システムによっては、これが入る可能性のあるファイルがいくつかあります)

于 2012-07-25T06:15:17.450 に答える
6

Ruby Version Managerをインストールする必要があります。インストールされた ruby​​ と gem をホーム ディレクトリに保存するので、sudogem をインストールするために を使用する必要がなくなりました。これ以外にもたくさんの機能があります。:)

于 2012-07-25T06:07:24.817 に答える