gem安装失败,使用" ruby​​:无效选项-H(-h将显示有效选项)(RuntimeError)"

时间:2013-06-04 15:14:48

标签: ruby gem install rvm native

在OSX Mountain Lion上运行gem install ffi会产生以下错误。

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

    /beweiche.rvm/rubies/ruby-1.9.3-p374/bin/ruby extconf.rb
/beweiche.rvm/rubies/ruby-1.9.3-p374/bin/ruby: invalid option -H  (-h will show valid options) (RuntimeError)


Gem files will remain installed in /beweiche.rvm/gems/ruby-1.9.3-p374@hugo/gems/ffi-1.8.1 for inspection.

任何原生扩展都会发生这种情况。 使用系统ruby(1.8.7)我可以安装带有原生扩展的gem。它甚至适用于1.9.3。但是在安装了“宝石更新”后,我陷入了困境。

在我的机器上安装了宝石:

bundler (1.2.3)
coderay (1.0.9)
diff-lcs (1.2.4)
graph (2.5.2)
method_source (0.8.1)
pry (0.9.12.1)
rake (10.0.3)
rspec (2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
rspec-mocks (2.13.1)
rubygems-bundler (1.1.0)
rvm (1.11.3.6)
slop (3.4.4)

这似乎是一个愚蠢的错字,但我找不到。

任何提示都受到高度赞赏。

同时,我在我的rvm中安装了ruby 2.0.0-rc1。使用此设置,我可以安装具有本机扩展名的gem。我将宝石升级到1.9.3中的相同版本,因为它们在2.0.0中,但问题仍然存在。

1 个答案:

答案 0 :(得分:0)

您使用homebrew吗?如果是,请在运行brew install libffi之前尝试通过bundle安装ffi。

你为什么要跑gem update installed?您应该让Bundler为您处理更新:bundlebundle update gem_xyz。如果你想添加一个新的gem,只需将它添加到Gemfile。

我假设当您更新所有宝石时,其中一个已更新为依赖于FFI。您可以在ffi中搜索Gemfile.lock来验证这一点。一旦你看到哪个gem依赖它,你就决定是否将这个gem修复到Gemfile中的早期版本,并完全消除依赖,或者继续安装lib。