当我尝试sudo gem install json时,我收到以下错误

时间:2009-04-17 17:59:24

标签: json ruby macos rubygems

我需要安装JSON gem来启动我的应用程序,但每当我尝试安装json gem时,我都会收到错误。谁能帮我吗。我正在使用rails 2.2.2和gems 1.3.1。

Arions-macbook-pro:.ssh arion$ sudo gem install json
Password:
Sorry, try again.
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing json:
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install json
can't find header files for ruby.


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/json-1.1.4 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/json-1.1.4/ext/json/ext/parser/gem_make.out

10 个答案:

答案 0 :(得分:20)

使用Mavericks,您可以通过命令行安装Xcode命令行工具来解决此问题,如下所示:

xcode-select --install

更新: 安装或更新后,请不要忘记接受许可协议:

sudo xcodebuild -license

答案 1 :(得分:13)

您缺少ruby开发标题。要在像ubuntu这样的操作系统上安装它们,你应该使用:

aptitude install ruby1.8-dev

答案 2 :(得分:13)

如果您遇到此问题:

ERROR:  Error installing json:
ERROR: Failed to build gem native extension.

并且您正在使用带有OS X的Mac(使用10.8.1 Mountain Lion测试),您需要从Mac App Store下载Xcode(如果您有开发帐户,则需要从developer.apple.com下载 - 它是免费的BTW你可以下载DMG安装程序)

最新的Xcode版本(我使用的是Xcode 4.4.1)不包含命令行工具。现在您需要在Xcode中安装此附加软件包。完成后,问题就解决了。

要做到这一点,请打开Xcode,转到首选项>下载>组件。安装“命令行工具”。你完成了。现在你可以安装json Ruby gem了。

enter image description here

答案 3 :(得分:4)

使用Mac OS X安装基础ruby时,不会安装ruby标头。可以通过安装XCode Tools在Mac OS X安装光盘2上找到这些标题。

安装完毕后,一切都很顺利!

UPDATE 至少从OS X 10.7.3开始,这不再是一个问题,它“只是有效”

MacBook-Pro:tmp$ sudo gem install json
Password:
Building native extensions.  This could take a while...
Successfully installed json-1.6.5
1 gem installed
Installing ri documentation for json-1.6.5...
Installing RDoc documentation for json-1.6.5...
MacBook-Pro:tmp$ uname -a

答案 4 :(得分:3)

安装Xcode命令行工具......应解决此问题。

答案 5 :(得分:2)

一个简单的google search揭示了这一点:

如果在尝试构建扩展或gem时遇到无法找到ruby错误消息的头文件,则表示Ruby无法找到其头文件。

默认情况下,Mac OS X不提供头文件,您需要在安装后安装Xcode Tools软件包。您可以在Leopard DVD上的Optional Installs / Xcode Tools目录中找到它。

答案 6 :(得分:2)

事实证明某些宝石需要一些ruby头文件才能正确安装。这些头文件 不附带Lion(OSX 10.7)。

事实证明,Xcode 4(最新版本)也没有安装这些头文件。我试过这个。

解决方案 - 假设您使用的是Mac OS X(您似乎基于终端输出)。为了使其正常工作,我在下一页

中安装了一些开发人员工具的gcc

您应该可以使用gem installbundle install安装宝石。

开销如果你担心这附带的其他垃圾,这里有一个摘要。

  • gcc - 有用
  • make - 有用
  • clang - 对ObjectiveC
  • 有用
  • 开发人员CLI工具(清除等) - 有用吗?
  • DevSDK(标题等) - 您需要的内容

答案 7 :(得分:0)

如果您使用自制程序,请运行brew doctor。您可能会发现编译所需的gcc库已过时和/或缺失。

Warning: No compiler found in /usr/bin!
Warning: Your Xcode (4.2) is outdated

checking for gcc... /Developer/usr/bin/llvm-gcc
checking whether the C compiler works... no
configure: error: in `/private/tmp/freexl-apNF/freexl-1.0.0d':
configure: error: C compiler cannot create executables

对于Lion和Mountain Lion用户,Apple现在提供了一个官方的Xcode包命令行工具,无需安装Xcode本身即可安装!您可以从Apple的开发者网站https://developer.apple.com/downloads/index.action下载它。如果您仍然需要gcc-4.2,并且使用Homebrew,则可以使用homebrew / dupes中的apple-gcc42软件包进行安装。

答案 8 :(得分:-1)

我遇到了同样的问题。

这是我的冒险经历(希望它会有用):

为了解决这个问题,我做了很多操作: - )

我正在使用Fedora Core。 我用这种方式解决了这个问题:

我已经安装了rails-devel:

  

sudo yum install rails-devel

再次尝试:

  

sudo gem install rails

但我还有另一个问题:

  

构建原生扩展。这可能需要一段时间...错误:错误   安装rails:错误:无法构建gem原生扩展。

    /usr/bin/ruby extconf.rb creating Makefile
     

制作gcc -I。 -I / usr / lib中/红宝石/ 1.8 / I386-Linux的   -I / usr / lib / ruby​​ / 1.8 / i386-linux -I。 -D_FILE_OFFSET_BITS = 64 -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE = 2 -fexceptions -fstack保护器--param = SSP-缓冲器大小= 4 -m32 -march = i686的-mtune =原子-fasynchronous -unwind-tables -fno-strict-aliasing -fPIC -O3 -Wall -c parser.c    make:gcc:找不到命令

所以我安装了GCC:

  

sudo yum install gcc

再次尝试:

  

sudo gem install rails

现在我有另一个问题))):

  

为json-1.6.3安装ri文档...错误:生成时   json-1.6.3的文档... MESSAGE:没有要加载的文件 -   irb / slex ... RDOC args:--ri --op   /usr/lib/ruby/gems/1.8/doc/json-1.6.3/ri --title JSON实现   Ruby --main README.rdoc ext / json / ext ext lib README.rdoc --title   json-1.6.3文档--quiet

所以安装了ruby-irb:

  

sudo yum install ruby​​-irb

再次尝试:

  

sudo gem install rails

     

已成功安装rails-3.1.3

这就是全部)))

答案 9 :(得分:-1)

这是我的解决方案:

rvm gem install json -v=xxx

我的设置:

OSX Lion
ruby-1.9.3
rvm
gcc-4.2 #=> honestly haven't seen that it's been used