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にファイルをインストールしたい理由
システム全体の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
GEM_HOME
およびGEM_PATH
を~/.gem
に設定してみてください。
現在のターミナルセッションでは、次のように入力します。
export GEM_HOME=~/.gem
export GEM_PATH=~/.gem
ターミナルを開くたびにこれらを設定したい場合は、~/.bashrc
ファイルに上記のコマンドを追加してください。
カスタムRuby環境をセットアップするためのより包括的なソリューションについては、.gemrc
ファイルの使用を説明する Site5KBのこのチュートリアル を参照してください。
1and1ホスティングを介して共有サーバーでこのエラーが発生していました。私の解決策は--user-install
オプション。ログインユーザー(共有サーバー環境で必要なすべて)にインストールするだけです。 sassのインストール
gem install sass --user-install
Rbenvを使用していて、これが起こっている場合は、次を.bash_profileに追加する必要があります。
export RBENV_ROOT="$HOME/.rbenv"
if [ -d $RBENV_ROOT ]; then
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
fi
再インストールRuby問題を解決します。
brew install Ruby