我有一些问题时,试图安装mysql2宝石为Rails。当我试图通过运行bundle install或gem install mysql2来安装它时,它会给我以下错误:

安装mysql2错误:错误:未能建立gem本地扩展。

我如何解决这个问题并成功安装mysql2?


当前回答

在纠正了mysql-dev问题之后,您可能需要删除坏的mysql2安装。仔细查看$ bundle安装后的消息。你可能需要

rm -rf vendor/cache/
rm -rf ./Zentest

这将清除坏的mysql2安装,以便最终的$ bundle安装可以创建一个好的安装。

其他回答

如果仍然报错,请按照mysql2 gem在Rails 3上的安装步骤

http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

其中大多数用户都能够安装mysql2 gem。

你试过用

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

来指定基本目录的位置以及完成gem安装所必需的MySQL库的路径?

来源: MySQL Gem安装错误:未能建立Gem本地扩展 MySQL论坛::Ruby::帮助安装MySQL绑定Ruby

在Ubuntu/Debian和其他使用aptitude的发行版上:

sudo apt-get install libmysql-ruby libmysqlclient-dev

libmysql-ruby包已经被ruby-mysql所取代。这就是我找到解决办法的地方。

如果上面的命令不能工作,因为libmysql-ruby无法找到,下面的命令应该足够了:

sudo apt-get install libmysqlclient-dev

在使用yum的Red Hat/CentOS和其他发行版上:

sudo yum install mysql-devel

在Mac OS X和Homebrew上:

brew install mysql

在ubuntu 20.04 LTS下,这是唯一的解决方案,一直为我工作:

sudo apt-get install ruby-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更新,我的塔也有问题。]