Ruby gem mysql2安装失败

当我尝试安装mysql2的gem,它失败,没有明显的错误。 有谁知道该怎么做才能解决这个mysql2安装?

 Tanner-Smiths-MacBook-Pro:Humans_vs_Zombies_Parse tanner $ sudo gem install mysql2build立本地扩展。 这可能需要一段时间...
错误:安装mysql2时出错:
    错误:无法构buildgem本机扩展。

 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
检查rb_thread_blocking_region()...不
在-lmysqlclient中检查mysql_query()...不
在-lm中检查main()...是的
在-lmysqlclient中检查mysql_query()...不
在-lz中检查main()...是的
在-lmysqlclient中检查mysql_query()...不
检查main()in -lsocket ...不
在-lmysqlclient中检查mysql_query()...不
检查main()in -lnsl ... no
在-lmysqlclient中检查mysql_query()...不
在-lmygcc中检查main()...不
在-lmysqlclient中检查mysql_query()...不
 *** extconf.rb失败***
由于某种原因无法创buildMakefile,可能缺乏
必要的库和/或标题。 检查mkmf.log文件以获取更多信息
细节。 您可能需要configuration选项。

提供的configuration选项:
     --with-OPT-DIR
     --without-OPT-DIR
     --with-OPT-包括
     --without-OPT-包括= $ {停用DIR} /包括
     --with-OPT-LIB
     --without-OPT-LIB = $ {select-DIR} / lib目录
     --with-MAKE-PROG
     --without-MAKE-PROG
     --srcdir =。
     --curdir
     --ruby = /系统/资源库/框架/ Ruby.framework /版本/ 1.8的/ usr / bin中/ruby
     --with-mysql的,configuration
     --without-mysql的,configuration
     --with-mysql的-DIR
     --without-mysql的-DIR
     --with-mysql的,包括
     --without MySQL的-包括= $ {的MySQL-DIR} /包括
     --with-mysql的-LIB
     --without MySQL的-LIB = $ {的MySQL-DIR} / lib中
     --with-mysqlclientlib
     --without-mysqlclientlib
     --with-MLIB
     --without-MLIB
     --with-mysqlclientlib
     --without-mysqlclientlib
     --with-zlib的
     --without-zlib的
     --with-mysqlclientlib
     --without-mysqlclientlib
     --with-socketlib
     --without-socketlib
     --with-mysqlclientlib
     --without-mysqlclientlib
     --with-nsllib
     --without-nsllib
     --with-mysqlclientlib
     --without-mysqlclientlib
     --with-mygcclib
     --without-mygcclib
     --with-mysqlclientlib
     --without-mysqlclientlib


 Gem文件将保持安装在/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6进行检查。
结果logging到/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out

您必须在您的机器上安装64位MySQL,以及安装xcode时所获得的构build工具。

Ubuntu的:

 sudo apt-get install libmysqlclient-dev #(mysql development headers) sudo gem install mysql2 -- --with-mysql-dir=/etc/mysql/ 

而已!

结果:

 Building native extensions. This could take a while... Successfully installed mysql2-0.2.6 1 gem installed Installing ri documentation for mysql2-0.2.6... Enclosing class/module 'mMysql2' for class Result not known Enclosing class/module 'mMysql2' for class Client not known Installing RDoc documentation for mysql2-0.2.6... Enclosing class/module 'mMysql2' for class Result not known Enclosing class/module 'mMysql2' for class Client not known 

你需要mysql2的MySQL开发标题才能正确编译。 这是必要的,因为大部分的function都是用C语言编写的,然后和MySQL连接起来。

解决方法是将gem安装程序明确指向您的mysql安装文件夹

 gem install mysql2 -- --with-mysql-dir=/usr/local/mysql # or where ever you installed your mysql server to 

或者通过安装一个mysql服务器到一个已知的位置(例如通过使用自制软件 ),然后安装gem

 # install the mysql server locally brew install mysql # install the gem gem install mysql2 

这两种方法都要求您安装XCode以获得所需的GCC编译器。

随着Brew和MySQL的安装,我使用以下来安装mysql2的gem

 gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.5.10/bin/mysql_config 

如果你使用Bundler,你可以通过命令告诉捆绑者:

 bundle config build.mysql2 --with-mysql-config=/usr/local//Cellar/mysql/5.5.10/bin/mysql_config 

如此处所述: http : //gembundler.com/man/bundle-config.1.html

Ubuntu 15.04:

 sudo apt-get install libmysqlclient-dev sudo gem install mysql2 

Ubuntu的16.04:

 sudo apt-get install ruby-mysql2 sudo gem install mysql2 

输出:

 Building native extensions. This could take a while... Successfully installed mysql2-0.3.19 Parsing documentation for mysql2-0.3.19 Installing ri documentation for mysql2-0.3.19 Done installing documentation for mysql2 after 0 seconds 1 gem installed 

在Mac OSX Moutain Lion上,下面的命令为我工作:

 gem install mysql2 -- --srcdir=/usr/local/mysql/include 

你可能想在MySQL网站上查看这个线程: http : //forums.mysql.com/read.php?116,178217,178217 ,特别是Scott Derrick的答案: http : //forums.mysql.com/ read.php?116,178217,189357#MSG-189357

更具体地说,尝试使用

 sudo gem install mysql2 -- --with-mysql-dir=/usr/local/mysql 

希望有所帮助。

我挖了2天价值的互联网和堆栈溢出,直到我find这个链接 ,然后开始工作通过这张票mysql2 ,我实际上解决了这个问题。

用我的设置(如票中所述),-Wno-null-conversion -Wno-unused-private-field的编译器开关会中断,并给我一个不完全正确的错误,那就是:

 mysql.h is missing. please check your installation of mysql and try again 

我想,如果你inputrvm use ruby-2.1.0@rails4.0 --create在你的目录中创build,然后bundle install它的作品。

我通过指定目录在哪里来解决这个问题, 无需重新安装任何东西,只需指定在哪里(只有一件事:我的Mac上的ruby是用rvm安装的,我是不使用os x中默认的那个):

添加到你的gem install mysql2下面的标志

  • --srcdir="..." – 包含
  • --with-mysql-dir="..." – mysql目录
  • --with-mysql-config="..." – mysql_config文件

像这个gem install mysql2 --srcdir=/usr/local/mysql/include/ --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

在Centos 6.x(7应该工作)与SCL(软件集合)rh-mysql:

 scl enable rh-mysql56 bash gem install mysql2 -v '0.4.5' -- --with-mysql-include=/opt/rh/rh-mysql56/root/usr/include --with-mysql-lib=/opt/rh/rh-mysql56/root/usr/lib64 
Interesting Posts