web-dev-qa-db-ja.com

gemインストール許可の問題

qichunren@zhaobak:~> gem install hpricot
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /opt/Ruby-enterprise-1.8.7/lib/Ruby/gems/1.8 directory.

現在のログインユーザーはqichunrenであり、qichunreユーザーは.gem dirで書き込み許可を持っています。gemが最初にホームの.gem dirにファイルをインストールしない理由を知りたいのですが?私のgem commonが最初に/opt/Ruby-enterprise-1.8.7/lib/Ruby/gems/1.8にファイルをインストールしたい理由

82
qichunren

システム全体のRubyインストールの場合、rootになります。例:

$ Sudo gem install hpricot

ただし、開発を含む多くの状況での最新のアプローチは、通常のユーザーとしてRubyを簡単にインストールして使用できるツールを使用することです。これにより、rootになる必要がなくなります。そのようなツールがいくつかあり、私が使用するものは [〜#〜] rvm [〜#〜] です。

# install rvm into your ~
$ \curl -sSL https://get.rvm.io | bash -s stable

# install latest version of Ruby into your ~
$ rvm install Ruby

# installs a gem into your ~
$ gem install $SOME_GEM_NAME
49
yfeldblum

GEM_HOMEおよびGEM_PATH~/.gemに設定してみてください。

現在のターミナルセッションでは、次のように入力します。

export GEM_HOME=~/.gem
export GEM_PATH=~/.gem

ターミナルを開くたびにこれらを設定したい場合は、~/.bashrcファイルに上記のコマンドを追加してください。

カスタムRuby環境をセットアップするためのより包括的なソリューションについては、.gemrcファイルの使用を説明する Site5KBのこのチュートリアル を参照してください。

158
meagar

1and1ホスティングを介して共有サーバーでこのエラーが発生していました。私の解決策は--user-installオプション。ログインユーザー(共有サーバー環境で必要なすべて)にインストールするだけです。 sassのインストール

gem install sass --user-install
6
Max

Rbenvを使用していて、これが起こっている場合は、次を.bash_profileに追加する必要があります。

export RBENV_ROOT="$HOME/.rbenv"

if [ -d $RBENV_ROOT ]; then
  export PATH="$RBENV_ROOT/bin:$PATH"
  eval "$(rbenv init -)"
fi
3
Kevin Qi

再インストールRuby問題を解決します。

brew install Ruby
0
jackyshan