3

我正在尝试在第二台计算机上安装我的 rails 应用程序。但是当我运行时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.

计算机运行 Mac OS X 10.8.4 和 Xcode 4.6.3 和最新的命令行工具。

我使用 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

尝试安装 usingsudo不会改变任何东西。

我卸载并重新安装了 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 -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

问题是我的主文件夹位于一个单独的卷上,其名称中包含一个空格。由于空格,名称的第二部分被解释为一个选项。卷名称类似于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 回答