在 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.
任何 native 扩展都会发生这种情况。 使用系统 ruby (1.8.7) 我可以安装带有 native 扩展的 gems。它甚至适用于 1.9.3。但是在执行了“安装的 gem 更新”之后,我卡住了。
在我的机器上安装的 gem:
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。使用此设置,我可以安装带有 native 扩展的 gem。我将 gems 升级到 1.9.3 中与 2.0.0 中相同的版本,但问题仍然存在。
最佳答案
你使用自制软件
吗?如果是这样,请尝试在运行 bundle
之前通过 brew install libffi
安装 ffi。
为什么要运行 gem update installed
?您应该让 Bundler 为您处理更新:bundle
或 bundle update gem_xyz
。如果你想添加一个新的 gem,只需将它添加到 Gemfile。
我假设当您更新所有 gem 时,其中一个已更新为依赖于 FFI。您可以通过在 Gemfile.lock
中搜索 ffi
来验证这一点。一旦您看到哪个 gem 依赖于它,您就可以决定是将该 gem 修复到 Gemfile 中的早期版本,并完全摆脱依赖性,还是继续安装 lib。
关于ruby - gem 安装失败,显示 "ruby: invalid option -H (-h will show valid options) (RuntimeError)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921462/