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