尝试在os x上安装mysql gem时出错

时间:2011-01-12 15:30:10

标签: mysql ruby-on-rails ruby

我正在尝试将mysql添加到我的Gemfile中,并在运行bundle install时安装它。我收到以下错误。

Installing mysql (2.8.1) with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

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

我也试过在gem mysql之前运行sudo。关于如何解决问题的任何想法都会很棒。

感谢, 马修

2 个答案:

答案 0 :(得分:1)

正如Tadman所说,您需要安装开发人员工具才能实现这一目标。但是错误消息告诉我们你缺少一些mysql头文件。我不知道你是否使用64位(mac我假设?)系统32位。在64位情况下,您可以这样做:

下载mysql。     http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.51-osx10.6-x86_64.dmg/from/http://mirror.leaseweb.com/mysql/

然后使用正确的绑定安装gem。我从未尝试过使用RVM,所以你应该这样做!

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

答案 1 :(得分:0)

您是否安装了OS X开发人员工具?如果您缺少XCode,则可能没有关键组件,例如Ruby和MySQL的头文件。

如果您使用的是默认系统Ruby,则使用MacPortsRVM来管理安装可能会很麻烦。我个人更喜欢MacPorts,因为它还有助于安装可能需要的各种系统库。

这是关于如何使用MacPorts进行安装的example。它以前被称为达尔文港口,但原则是相同的。