OS X Yosemite和chef上的Ruby错误

OS X Yosemite和chef上的Ruby错误,ruby,macos,gem,Ruby,Macos,Gem,当尝试在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/L

当尝试在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
$sudo gem安装厨师
构建本机扩展。这可能需要一段时间。。。
错误:安装chef时出错:
错误:无法生成gem本机扩展。
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby-r./siteconf20141023-4708-6api21.rb extconf.rb
创建Makefile
/Library/Ruby/Gems/2.0.0/Gems/libyajl2-1.1.0/ext/libyajl2
extconf.rb:104:'makefiles'中:未处理的异常
来自extconf.rb:138:in`'
extconf失败,退出代码1

编辑:尽管我下面的答案将帮助您在Ruby的系统版本上安装它。我可能会建议使用RVM,正如下面的评论所提到的那样。我不经常使用Ruby,它可能会很好,但我决定花10分钟的时间将其更改为安装到RVM,因为这样我就不会影响系统Ruby

所以我在发帖后很快就回答了自己的问题,我希望这对以后的其他人有所帮助

我用了这个:

$ sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install chef
Xcode中的Apple LLVM编译器将无法识别的命令行选项视为错误。这个问题在构建Python本机扩展和RubyGems时就已经出现了,目前在这两个扩展中指定了一些无效的编译器选项

遇到了一个非常相似的问题:

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

长话短说:缺少
gmp
库。你可以在ubuntu上用

sudo apt-get install libgmp3-dev

我对这个gem有这个问题,另外一个gem也有c扩展

事实证明,在更新XCode:-)之后,我需要接受新的条款和条件


sudo xcodebuild-license

您知道,通过使用
sudo
您将Chef安装到了苹果提供的Ruby中,这是供他们使用的,对吗?也许你应该考虑使用或者,而不是修改系统Ruby?我实际上没有做很多Ruby开发。我不知道我是否同意他们的使用,更多的系统使用,但我理解你的意思。主要是给厨师用的。但是谢谢你的提示。也许我会使用RVM,以防我沿着ruby的道路走得更远。是的,系统使用。太多不知道它为什么会在那里的人认为它只是放在那里供他们使用的,然后把它弄乱并弄坏。在你的评论之后。尽管我不经常使用Ruby环境,所以我不太担心破坏它,但我决定花10分钟卸载并安装RVM,然后重新安装。很快,现在如果我决定做更多的ruby dev,我会更好。谢谢你的提示。