web-dev-qa-db-ja.com

Ruby Gave install JsonはMavericksおよびXcode 5.1で失敗します-不明な引数: '-multiply_definedsuppress'

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に基づく)

104
g8M

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

ただし、これは一時的な修正にすぎないことに注意してください。

144
Kasper Munck

それを修正するためのワンライナー

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
107
Paul Chechetin

この問題に対処するには、@ 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
19
Sbhklr

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]に更新し、これにより問題が解決したようです。

12
Shahar Hadas

@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
4
worldask

私の場合、実際には同様の問題がありますが、システムRubyではなく、OSX 10.8からrvmによってインストールされたルビーにあり、OSX 10.9にアップグレードした後に問題があります。

簡単な再インストールが機能します:rvm reinstall Ruby-2.1.1

2
xbeta

Paul Chechetinのワンライナーは、もう機能しないようです(9/21/15)。しかし、 この返信 Peteの返信に記載されている投稿に対して、問題は解決しました:

  • (a)AppleのXCodeをインストールしてから、(b)起動してライセンス条項に同意します(私は(a)を行いましたが、(b)はしませんでした。)
  • Sudo gem uninstall compass
  • Sudo gem install compass
1
Mark

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をいじり始めたばかりであることがわかるので、上記のアドバイスは役に立つかもしれません。

1
user2623812

これらのどれも私にとってはうまくいきませんでした。

最終的に機能したのは、コマンドをSudoで実行することです-

gem install byebug -v '9.0.6'

1
Alex Jose