我有一些问题时,试图安装mysql2宝石为Rails。当我试图通过运行bundle install或gem install mysql2来安装它时,它会给我以下错误:
安装mysql2错误:错误:未能建立gem本地扩展。
我如何解决这个问题并成功安装mysql2?
我有一些问题时,试图安装mysql2宝石为Rails。当我试图通过运行bundle install或gem install mysql2来安装它时,它会给我以下错误:
安装mysql2错误:错误:未能建立gem本地扩展。
我如何解决这个问题并成功安装mysql2?
当前回答
我只是想特别为Mac用户添加这个答案。
在我更新xcode之前,我的服务器运行得非常好。当启动我的rails服务器时,错误显示如下
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-
p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an
executable file. (RuntimeError)
并且在错误消息的末尾有安装mysql2 gem的建议。所以当我尝试安装它时,我得到了这个问题中提到的错误。我得到的错误如下
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
因此,正如在这篇文章中所建议的那样,我尝试了“酿造安装mysql”,并退出说mysql版本已经安装。但之前有警告说
Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license
然后我尝试了这个sudo xcodebuild -license,并在最后键入'agree'。您必须是root用户才能同意该许可。
在此之后,我再次尝试bundle安装,然后一切都正常工作。[甚至由于这次xcode更新,我的塔也有问题。]
其他回答
我在我的mac上遇到了这个错误,我发现我需要从mysql 32位升级到mysql 64位才能让这个错误消失。我在英特尔macbook pro上运行OSX 10.6, ruby 1.9.2和rails3.0.0
我还需要安装xcode,以获得编译gem所需的诸如“make”之类的unix实用程序。
一旦这样做,我能够运行gem安装mysql和gem安装mysql2没有错误。
在纠正了mysql-dev问题之后,您可能需要删除坏的mysql2安装。仔细查看$ bundle安装后的消息。你可能需要
rm -rf vendor/cache/
rm -rf ./Zentest
这将清除坏的mysql2安装,以便最终的$ bundle安装可以创建一个好的安装。
在升级到Mac OS X Mountain Lion后尝试安装mysql2 gem时,出现“您必须先安装开发工具”错误。显然,执行此升级将删除命令行编译器。
修复:
我卸载了旧版本的Xcode(在/Developer/Library中运行卸载脚本)。然后删除“/Developer”目录。 去AppStore下载Xcode。 打开Xcode,进入首选项->下载,安装命令行工具。
我在Windows 7上遇到了这个问题。这显然是一个不兼容的问题,解决方案如下:
从旧的InstantRails安装程序下载libmySQL.dll文件。它可以从InstantRails GitHub回购中获得。
接下来,将该文件复制到Ruby/bin文件夹中。
现在,你可以开始了;)
如果您正在使用yum,请尝试:
sudo yum install mysql-devel