1. ホーム
  2. ruby

[解決済み] OS X "El Capitan "にgemsをインストールできない。

2022-05-04 20:24:34

質問

をインストールし、実行することができません。 fakes3 gem を El Capitan Beta 5 で使用することができます。

試してみました。

sudo gem install fakes3
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/fakes3

そこで、cocoapodsの方法でやってみました。cocoapodsではうまくいったのですが、fakes3ではうまくいきませんでした。

mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

解決方法は?

免責事項 @theTinMan や他のRuby開発者は、しばしば次のような指摘をします。 sudo gems をインストールする際に RVM . Rubyの開発をするときは絶対にそうですね。どうぞ、使ってください。

しかし、私たちの多くは、たまたまgemとして配布されているバイナリが欲しいだけです(たとえば fakes3 , cocoapods , xcpretty ...). 別個のルビーを管理するのは絶対に嫌だ。以下は、より手っ取り早い選択肢です。

オプション 1: sudo を使い続ける

使用方法 sudo は、これらのツールをグローバルにインストールしたい場合には、おそらく問題ないでしょう。

問題は、これらのバイナリを /usr/bin であり、これは 立入禁止 El Capitan以降。しかし、それらをインストールすることで /usr/local/bin 代わりに そこで ホームブリュー がインストールされているので おそらく はすでに存在しています。

sudo gem install fakes3 -n/usr/local/bin

Gemsは以下の場所にインストールされます。 /usr/local/bin の中にあれば、あなたのシステムのすべてのユーザがそれらを使うことができます。 パス .

オプション 2: ホームディレクトリにインストールする (sudo なし)

以下は、gemsを ~/.gem に、バイナリを ~/bin (その後、あなたの PATH ).

gem install fakes3 --user-install -n~/bin

デフォルトにする

いずれにせよ、これらのパラメータを ~/.gemrc というように、覚えておく必要はありません。

gem: -n/usr/local/bin

すなわち echo "gem: -n/usr/local/bin" >> ~/.gemrc

または

gem: --user-install -n~/bin

すなわち echo "gem: --user-install -n~/bin" >> ~/.gemrc

( ヒント を投入することもできます。 --no-document を使えば、Ruby開発者向けドキュメントの生成をスキップできます)。