gem install 失败并显示“ruby:无效选项 -H(-h 将显示有效选项)(RuntimeError)”
Posted
技术标签:
【中文标题】gem install 失败并显示“ruby:无效选项 -H(-h 将显示有效选项)(RuntimeError)”【英文标题】:gem install fails with "ruby: invalid option -H (-h will show valid options) (RuntimeError)" 【发布时间】:2013-05-31 01:31:04 【问题描述】:在 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。但是在“安装了 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。使用此设置,我可以安装带有本机扩展的 gem。我在 1.9.3 中将 gem 升级到与 2.0.0 中相同的版本,但问题仍然存在。
【问题讨论】:
/beweiche.rvm
正确吗?
是的,这是正确的。它软链接到 /Volumes/Macintosh HD/Users/beweiche/.rvm/ 以避免路径中的空格。
【参考方案1】:
你使用homebrew
吗?如果是这样,请在运行 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。
【讨论】:
我从来没有设法让自制软件在我的机器上运行。我会再试一次,如果它不起作用,我会在这里打开另一个问题。但是感谢捆绑器的提示。以上是关于gem install 失败并显示“ruby:无效选项 -H(-h 将显示有效选项)(RuntimeError)”的主要内容,如果未能解决你的问题,请参考以下文章
mac 上的 gem install rails 失败错误:无法构建 gem 本机扩展
gem install / update失败,“没有将nil隐式转换为String”
gem install mongrel 使用 ruby 1.9.1 失败