3

Rails アプリを 2 台目のコンピューターにインストールしようとしています。しかし、実行するbundle installと、json gem でエラーが発生します。

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby extconf.rb 
/Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby: invalid option -D  (-h will show valid options) (RuntimeError)


Gem files will remain installed in /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0 for inspection.
Results logged to /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0/ext/json/ext/generator/gem_make.out

An error occurred while installing json (1.8.0), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.0'` succeeds before bundling.

コンピューターは、Xcode 4.6.3 と最新のコマンド ライン ツールを備えた Mac OS X 10.8.4 を実行します。

rvm を使用して最新の Ruby をインストールしました。

$ rvm -v

rvm 1.21.2 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

$ ruby -v
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.4.0]
$ gem -v
2.0.3

を使用してjson gemをインストールしようとすると、gem install jsonほぼ同じエラーが発生します。

Building native extensions.  This could take a while...
ERROR:  Error installing json:
    ERROR: Failed to build gem native extension.

    /Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby extconf.rb
/Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby: invalid option -D  (-h will show valid options) (RuntimeError)


Gem files will remain installed in /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0 for inspection.
Results logged to /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0/ext/json/ext/generator/gem_make.out

を使用してインストールしようとしても、sudo何も変わりません。

homebrew、rvm、ruby、およびコマンドラインツールをアンインストールして再インストールしましたが、何も役に立ちません。

アップデート

の内容/Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0/ext/json/ext/generato‌​r/gem_make.out:

/Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby extconf.rb
/Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby: invalid option -D  (-h will show valid options) (RuntimeError)

GCC バージョン:

$ gcc -v
Using built-in specs.
Target: i686-apple-darwin11
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)

更新 2

OS X、Xcode、コマンド ライン ツール、Homebrew、rvm、Ruby を新規インストールしました。Ruby は現在パッチ レベル 247 ですが、いまいましい問題はまだ残っています。時間の無駄です...重要な場合:rvmはjson 1.7.7をrubyと一緒にインストールしました

アップデート 3

私のマシンはすべてのネイティブ拡張機能で失敗するようです。gem install bcrypt-ruby同じエラーメッセージが表示されます。

4

3 に答える 3

6

問題は、ホーム フォルダが名前にスペースを含む別のボリュームにあることでした。スペースがあるため、名前の 2 番目の部分はオプションとして解釈されました。ボリューム名は次のようなものだったMy Dataので、メッセージが表示されinvalid option -Dました。

このボリュームの名前を変更したところ、すべて正常にインストールされました。

于 2013-06-29T13:42:53.830 に答える
1

これは、Json バージョン 1.8.0 および 1.8.1 (Ruby 2.2.3) で発生したようです...問題なく 1.8.2 および 1.8.3 にアップグレードできました...それらのバージョンを指定します

gem 'json', '~> 1.8.2'

私のバンドルで問題を回避しました。

于 2015-10-15T22:17:39.520 に答える
-1

これはまだバグのようです... https://github.com/flori/json/issues/163

バンドルでのみ発生します。gem install json を試すことはできますか? 後で問題が解決する場合があります。

于 2013-06-26T19:57:05.527 に答える