安装CocoaPods时出错

9

这里是错误信息:

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

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/json-1.8.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/json-1.8.1/ext/json/ext/generator/gem_make.out

我在谷歌上搜索了7个小时,但我找不到适合我的解决方案。我已经尝试了所有的方法,请帮助我。
编辑: *安装RVM后,我仍然遇到相同的错误。
Building native extensions.  This could take a while...
ERROR:  Error installing cocoapods:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/json-1.8.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/json-1.8.1/ext/json/ext/generator/gem_make.out

使用以下命令行: sudo gem install cocoapods

你运行了什么来导致这个错误?你使用的是哪个系统? - Dan Grahn
3个回答

2
尝试使用"brew install cocoapods"代替,这样就可以安装CocoaPods而无需出现此错误。

1

您正在使用 Mac OS。获取方法如下:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h

你正在尝试将gem安装到由Apple安装用于他们自己的系统Ruby中。

不要这样做。

相反,使用rbenvRVM在单独的沙盒中管理/安装Rubies,在那里你可以自由地进行任何操作。

如果你选择使用RVM,请在开始之前*阅读全部安装说明*。 RVM非常全面和灵活,但安装时会增加额外的“选项”(也称为“复杂性”)。请以单用户身份执行,永远不要使用sudo,那么你就应该没问题了。

我们可以利用Apple的系统安装的Ruby,但是除非你真正理解自己在做什么,否则不要修改它;上面的错误让我觉得这不是情况。

要安装除Apple预安装的Ruby之外的Ruby,很有可能你需要当前的Xcode和命令行扩展程序。 这将提供编译本地扩展所需的工具以及所有必需的头文件:


由于我不知道如何在终端中操作,请问你能帮我安装CocoaPods吗?我已经更新了问题的信息。 - ion
你有看到那部分写着“绝对不要使用sudo”吗?你是否使用“rvm install 2.0.0-p...”在RVM的沙盒中安装了Ruby的版本?你是否通过输入“rvm use 2.0.0-p... --default”告诉RVM使用该版本? - the Tin Man

1

通常建议在安装CocoaPods之前先安装类似于rvm或rbenv的软件。作为CocoaPods背后的开发人员之一,我想说,除非您计划自己处理ruby工作,否则您无需做任何这样的事情。如果您只是想让CocoaPods工作,那么没有必要使用ruby管理器的全部开销。

引用CocoaPods指南

CocoaPods是使用Ruby构建的,它可以使用OS X上可用的默认Ruby进行安装。您可以使用Ruby版本管理器,但我们建议您使用OS X上可用的标准Ruby,除非您知道您在做什么。

使用默认的Ruby安装需要在安装gem时使用sudo。(尽管如此,这只是在安装gem期间的问题)

$ sudo gem install cocoapods


2
对不起,已经有一段时间了。我放弃安装"CocoaPods"了。我遇到了巨大的困难让它正常工作。自从我开发OS X或iOS以来已经有一段时间了,但是CocoaPods事实证明比我尝试使用的任何东西都要困难得多。即使是OpenGL也变得更容易使用和理解。我强烈建议提供更好的文档! - ion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接