Gem install jsonを実行しようとして、次のエラーが発生しました
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby extconf.rb
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling generator.c
linking shared-object json/ext/generator.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [generator.bundle] Error 1
make failed, exit code 2
Gem files will remain installed in /opt/boxen/repo/.bundle/Ruby/2.0.0/gems/json-1.8.0 for inspection.
Results logged to /opt/boxen/repo/.bundle/Ruby/2.0.0/extensions/universal-darwin-13/2.0.0/json-1.8.0/gem_make.out
私は使用しています:
OS X:10.9.2
Xcode:5.1ビルドバージョン5B130a
コマンドラインツール(CLT):5.1.0.0.1.1393561416
Ruby:Ruby 2.0.0p247(2013-06-27 revision 41674)[universal.x86_64-darwin13]
ルビーの宝石:2.2.2
GCC:4.2.1 Apple LLVMバージョン5.1(clang-503.0.38)(LLVM 3.4svnに基づく)
Xcodeを5.1にアップデートした後、まったく同じ問題に遭遇しました。Appleからのニュースは良くありません。 Xcode 5.1リリースノート から:
- Xcode 5.1のApple LLVMコンパイラは、認識されないコマンドラインオプションをエラーとして扱います。この問題は、いくつかの無効なコンパイラオプションが現在指定されているPythonネイティブ拡張とRuby Gemsの両方をビルドするときに見られました。
無効なコンパイラオプションを使用しているプロジェクトは、それらのオプションを削除するために変更する必要があります。その移行を容易にするために、コンパイラはエラーを警告にダウングレードするオプションを一時的に受け入れます。
-Wno-error=unused-command-line-argument-hard-error-in-future
この問題を回避するには、ARCHFLAGS環境変数を設定して、エラーを警告にダウングレードします。
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName
有効なオプションを使用するには、コンパイラオプションに違反するすべてのgemを更新する必要があるようです。 このオプション[エラーを警告にダウングレード]は今後サポートされなくなります。
私たちが見ているclangノート(これはハードエラー(警告にダウングレードすることはできません)は将来的になります)は、リリースノート。
具体的に質問に答えるには、次を使用してjson gemをインストールします。
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install json
ただし、これは一時的な修正にすぎないことに注意してください。
それを修正するためのワンライナー
curl https://Gist.githubusercontent.com/Paulche/9713531/raw/1e57fbb440d36ca5607d1739cc6151f373b234b6/gistfile1.txt | Sudo patch /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/universal-darwin13/rbconfig.rb
この問題に対処するには、@ Sashの説明に従って、Rubyの最新バージョンをインストールできます。これを行うには、次のコマンドを使用できます。すでにrvmをインストールしている場合は、再インストールする必要はありません。
#Install rvm
\curl -sSL https://get.rvm.io | bash -s stable
#Install Ruby version 2.0.0-p451
rvm install Ruby-2.0.0-p451
#Print Ruby version to verify that it was installed successfully
Ruby -v
#Install json gem
Sudo gem install json
Rubyで既に対処されている問題:
https://bugs.Ruby-lang.org/issues/9624
AppleのRubyバージョン(2.0.0p247)がまだリリースされていない最新バージョン(2.0.0p451)に更新されるのを待つ必要があります。 ..(またはbrew/macport it)
更新(2014-05-15):Mavericks 10.9.3はRubyをRuby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]
に更新し、これにより問題が解決したようです。
@Munckenは、gemを1つずつインストールするための回答をすでに提供しています。
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName
Munckenの答えに基づいて、bundle install
を使用するときにも機能することを試しました
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future bundle install
私の場合、実際には同様の問題がありますが、システムRubyではなく、OSX 10.8からrvmによってインストールされたルビーにあり、OSX 10.9にアップグレードした後に問題があります。
簡単な再インストールが機能します:rvm reinstall Ruby-2.1.1
Paul Chechetinのワンライナーは、もう機能しないようです(9/21/15)。しかし、 この返信 Peteの返信に記載されている投稿に対して、問題は解決しました:
Sudo gem uninstall compass
Sudo gem install compass
OSX 10.10では、次のようなRails new firstapp
の実行時にいくつかの問題がありました。
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
fatal error: 'Ruby/config.h' file not found
この構成でrvmを更新しましたが、すべてのエラーがなくなりました!:
rvm get stable --auto-dotfiles
アプリ名から、RailsでRubyをいじり始めたばかりであることがわかるので、上記のアドバイスは役に立つかもしれません。
これらのどれも私にとってはうまくいきませんでした。
最終的に機能したのは、コマンドをSudoで実行することです-
gem install byebug -v '9.0.6'