El Capitan Beta 5にfakes3
gemをインストールして実行することはできません。
私は試した:
Sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
それから私はそれをカカオポッドのやり方でやってみました。それはカカオ足のために働きましたが、偽物のために働きません3。
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開発者は、gemをインストールするときにSudo
を使わないことをしばしば指摘し、 RVM のようなものを指摘します。 Ruby開発をするときそれは絶対に本当です。さあ、それを使ってください。
しかし、私たちの多くは、たまたまバイナリをgemとして配布したいと思っています(例:fakes3
、cocoapods
、xcpretty
…)。私は間違いなく別のRubyを管理することに煩わされたくはありません。ここにあなたのより速いオプションがあります:
これらのツールをグローバルにインストールしたい場合は、Sudo
を使用しても問題ありません。
問題はこれらのバイナリが/usr/bin
にインストールされていることです。これはEl Capitanから off-limits です。ただし、代わりにそれらを/usr/local/bin
にインストールすることができます。それが Homebrew がそのものをインストールするところです、それでそれはおそらく 既に存在します。
Sudo gem install fakes3 -n/usr/local/bin
Gemは/usr/local/bin
にインストールされ、あなたのシステム上のすべてのユーザーは PATH に入っていればそれを使うことができます。
以下はgemを~/.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
(ヒント:Ruby開発者向けドキュメントの生成をスキップするために--no-document
を投入することもできます。)
私の場合は、 Brew を使用してRubyを再インストールする必要がありました。私は再びgemをインストールできるので、これで問題は解決したようです。
brew install Ruby
その後、ログアウトしてログインする必要があります。グラフィカルに、または単に端末を再起動してください。
これはOS Xの新しいセキュリティ機能 "El Capitan"が原因です。 Sudoの代わりに--user-install
を追加してみてください。
$ gem install *** --user-install
たとえば、fake3をインストールしたい場合は、次のようにします。
$ gem install fake3 --user-install
Sudo gem install -n /usr/local/bin cocoapods
これを試して。それは間違いなく動作します。
Xcodeを最新のもの(v7.0.1)に更新する必要があります。そうすれば、すべて正常に動作します。
最新のXcodeをインストールしてもまだ動作しない場合は、このようにgemをインストールしてみてください。
Sudo gem install -n /usr/local/bin GEM_NAME_HERE
例えば:
Sudo gem install -n /usr/local/bin fakes3
Sudo gem install -n /usr/local/bin compass
Sudo gem install -n /usr/local/bin susy
OS X El Capitainにアップグレードすると、/ usr/localディレクトリは複数の方法で変更されます。
[編集]やるべき予備的なこともあります:Xcodeをアップグレードしてください...
$ Sudo chown -R $(whoami):admin /usr/local
これにより/usr/local
ディレクトリのパーミッションが修正され、gem install
とbrew install|link|...
の両方のコマンドが正しく機能するようになります。
/usr/local
ディレクトリのパーミッションを修正したことを確認してください(上記の#1を参照)
まず以下のコマンドを使ってgemを再インストールしてください。
Sudo gem install <gemname>
指定したgemの最新バージョンがインストールされることに注意してください。
後方互換性の問題に直面したくないのであれば、まずどのgemのどのバージョンを取得したいかを決めてから-v version
を使って再インストールすることをお勧めします。システムがcapistranoの新しいバージョンを取得しないことを確認するために下記の例を見てください。
$ gem list | grep capistrano
capistrano (3.4.0, 3.2.1, 2.14.2)
$ Sudo gem install capistrano -v 3.4.0
醸造を更新して処方をアップグレードする
$ brew update
$ brew upgrade
手動でそれらのいくつかを再リンクする必要があるかもしれません
$ brew link <formula>
言われているように、問題は「El Capitan」以来のMac OSXのセキュリティ機能から来ます。
デフォルトのシステムRubyを使用すると、インストールプロセスは/Library/Ruby/Gems/2.0.0
ディレクトリで行われますが、これはユーザーには利用できず、エラーが発生します。
Ruby環境のパラメータは、次のコマンドで確認できます。
$ gem env
INSTALLATION DIRECTORYとUSER INSTALLATION DIRECTORYがあります。デフォルトのインストールディレクトリではなくユーザーインストールディレクトリを使用するには、Sudo
を使用するのではなく--user-install
パラメータを使用します。これは推奨される方法ではありません。
$ gem install myGemName --user-install
その過程で権利の問題はもうないはずです。その後、gemはユーザディレクトリにインストールされます。~/.gem/Ruby/2.0.0/bin
しかしインストールされたgemを利用可能にするために、このディレクトリはあなたのパスで利用可能であるべきです。 Rubyのよくある質問 に従って、あなたの~/.bash_profile
または~/.bashrc
に次の行を追加することができます。
if which Ruby >/dev/null && which gem >/dev/null; then
PATH="$(Ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi
それから端末を閉じて再ロードするか、.bash_profile
または.bashrc
を再ロードしてください(. ~/.bash_profile
)
RVMを再インストールすることは私のために働きました、しかし私はその後私の宝石の全てを再インストールしなければなりませんでした:
rvm implode
\curl -sSL https://get.rvm.io | bash -s stable --Ruby
rvm reload
あなたがインストールしようとしているgemがxmlライブラリを必要とするなら、これを試してください:
Sudo gem install -n /usr/local/bin <gem_name> -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
特に、OS X El Capitanにnokogiri gem v 1.6.8をインストールしているときに問題が発生しました
そして、これはついに私のために働きました:
Sudo gem install -n /usr/local/bin nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
Libxml2とlibxsltがインストールされていることを確認するには、次のようにします。
brew install libxml2 libxslt
brew install libiconv
次に、xcodeコマンドラインツールがインストールされていることを確認します。
xcode-select --install
このエラーを返すはずです:
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
これが私が使用した解決策です。
注:私が別のSO質問で書いたように、この修正はコンパス用ですが、同じプロセスを使用してすべての端末プロセスに機能を復元しています。しかし、プロセスは同じです。
私は同じ問題を抱えていました。これはアップルがシステムインテグリティ保護(SIP)を実装しているためです。あなたはまずそれを無効にする必要があります...
リカバリモードで再起動します:
Appleロゴが表示されるまで Command + R を再起動して押したままにします。
起動したら、トップバーから Utilities> Terminal を選択します。
タイプ:csrutil disable
次に入力します:reboot
再起動したら
端末をバックアップして開き、次のコマンドを入力します。
Sudo gem uninstall bundler
Sudo gem install bundler
Sudo gem install compass
Sudo gem install sass
Sudo gem update --system
失敗した個々の宝石は修正する必要があるので、それぞれについて次のようにします。
私のマシンでは、これが機能していない最初の依存関係だったので、リストしました。
Sudo gem pristine ffi --version 1.9.3
修復する必要がある宝石のリストを進めます。全部であなたはそれを直すために約10分を見ています、しかしあなたはコンパスが働くための端末コマンドを持つでしょう。
私はEl Capitanをインストールした後に同じ問題に遭遇しました、私はsymfonyプロジェクトにsassとcompassをインストールしようとしました、以下のコマンドは以下のエラーを返しました:
$ Sudo gemインストールコンパス
エラー:コンパスのインストール中にエラーが発生しました:エラー:gemネイティブエクステンションの構築に失敗しました。
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby extconf.rb
ffi.hを確認しています... /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/mkmf.rb:434:in `try_do ':コンパイラがファイルを生成できませんでした。実行可能ファイル。 (ランタイムエラー)
だから私はそれからsassをインストールしようとしました:$ Sudo gem install sass
私が次のコマンドを使用してsassをインストールすることに成功したいくつかのグーグルの後、同じエラーメッセージを得ました:
$ Sudo gem install -n/usr/local/bin sass
上記はsassをインストールすることで私のために働きましたが、コンパスをインストールするためには動きませんでした。私はどこかに誰かがxcodeのインスタンスを開いてからそれを再び閉じた後に同じコマンドをうまく実行したことを読みました。 xcodeを開こうとしましたが、インストールされているxcodeのバージョンがEl Capitanと互換性がないというメッセージが表示されました。それで、私はそれからapp storeからxcodeを更新して、今回は首尾よく走った以下のコマンドを再走らせました:
$ Sudo gem install -n/usr/local/bin compass
私は$ compass initを実行することができました
私は今、私のすべての宝石を動かしていて、そしていくつかのすばらしいsassものを造ることに進むことができます:)
rm -rf ./vendor
にしてからbundle install
をもう一度実行しなければなりませんでした。