【问题标题】:Ruby error on OS X Yosemite and chefOS X Yosemite 和 chef 上的 Ruby 错误
【发布时间】:2016-04-23 01:44:46
【问题描述】:

尝试在 OS X Yosemite 上安装 chef 时出现此错误,其他 gem 安装正常。没看到需求。只是想知道是否有人知道问题是什么或遇到过这个问题。

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

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20141023-4708-6api21.rb extconf.rb
creating Makefile
/Library/Ruby/Gems/2.0.0/gems/libyajl2-1.1.0/ext/libyajl2
extconf.rb:104:in `makemakefiles': unhandled exception
    from extconf.rb:138:in `<main>'

extconf failed, exit code 1

编辑:虽然我下面的回答将帮助您将它安装在系统版本的 Ruby 上。我可能会建议使用 RVM 作为下面提到的评论。我不经常使用 Ruby,它可能会很好,但我决定花 10 分钟将其更改为安装到 RVM,因为这样我就可以保持系统 ruby​​ 不变。

【问题讨论】:

  • 您确实明白,通过使用sudo,您将 Chef 安装到 Apple 提供的 Ruby 中,供他们使用,对吗?也许您应该考虑使用RVMrbenv,而不是修改系统Ruby?
  • 我实际上并没有做很多 Ruby 开发。我不知道我是否同意他们使用的声明,更多的系统使用,但我理解你的意思。大多数情况下只是将它用于厨师。但谢谢你的提示。也许我会使用 RVM,以防我在 ruby​​ 路径上进一步冒险。
  • 是的,系统使用。太多不知道它为什么会在那里的人认为它只是为了他们的使用而放在那里,然后把它弄乱并破坏它。
  • 在您发表评论之后。尽管我不经常使用我的 Ruby 环境,所以我并不太担心会破坏它,我还是决定花 10 分钟来卸载和设置 RVM 并重新安装。很快,如果我决定做更多的 ruby​​ 开发,我会做得更好。感谢您的提示。

标签: ruby macos gem


【解决方案1】:

当我在网上搜索时,我实际上可以解决这个问题(也出现在 docker/ubuntu 上),正如这个帖子中所建议的那样:

https://stackoverflow.com/a/32191707/1948319

长话短说:gmp 库丢失了。您可以使用

在 ubuntu 上安装它
sudo apt-get install libgmp3-dev

【讨论】:

    【解决方案2】:

    我特别遇到了这个 gem 的这个问题,还有另一个带有 c 扩展的 gem。

    原来我需要在更新 XCode 后接受新的条款和条件 :-)

    sudo xcodebuild -license

    【讨论】:

      【解决方案3】:

      所以我实际上在发布后不久就回答了我自己的问题,我希望它在未来对其他人有所帮助。

      我用这个代替:

      $ sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install chef
      

      Xcode 中的 Apple LLVM 编译器将无法识别的命令行选项视为错误。在构建 Python 原生扩展和 Ruby Gems 时发现了这个问题,其中当前指定了一些无效的编译器选项。

      遇到了这个足够相似的问题: https://github.com/FontCustom/fontcustom/issues/194

      【讨论】:

        猜你喜欢
        • 2014-12-16
        • 2014-07-25
        • 2014-10-26
        • 2015-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-26
        • 1970-01-01
        相关资源
        最近更新 更多