2013-07-02 44 views
0

安裝mysql2我已經安裝Ruby 2,軌道4,5和MySQL(含自制)。在Mac OS

我嘗試安裝寶石「mysql2」但我得到這個消息:

gem install mysql2 
Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for mysql.h... no 
checking for mysql/mysql.h... no 
----- 
mysql.h is missing. please check your installation of mysql and try again. 
----- 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. 

Provided configuration options: 
--with-opt-dir 
--with-opt-include 
--without-opt-include=${opt-dir}/include 
--with-opt-lib 
--without-opt-lib=${opt-dir}/lib 
--with-make-prog 
--without-make-prog 
--srcdir=. 
--curdir 
--ruby=/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby 
--with-mysql-config 
--without-mysql-config 


Gem files will remain installed in /usr/local/rvm/gems/ruby-2.0.0-p247/gems/mysql2-0.3.11 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.0.0-p247/gems/mysql2-0.3.11/ext/mysql2/gem_make.out 

你能幫助我嗎?

+0

缺少'mysql.h'可能意味着你缺少mysql-devel軟件包(或任何它將在osx上),它提供了用於編譯mysql支持到其他應用程序的頭文件/庫。 –

+0

你錯過了'mysql'頭。這可能是在一個單獨的封裝(在Linux發行包,這將是像'的mysql-devel')。 – zneak

+0

@spullen,我用自制軟件安裝mysql – guilb

回答

1

出於某種原因,通過自制軟件安裝mysql已損壞。您必須手動編輯mysql_config

自制留在/usr/local/Cellar/mysql/5.6.12/bin的mysql_config文件, 與sudo打開它,周圍線120,發現這些行:

cflags="-I$pkgincludedir -Wall -Wno-null-conversion -Wno-unused-private-field -Os -g -fno-strict-aliasing -DDBUG_OFF -arch x86_64 " #note: end space! 
cxxflags="-I$pkgincludedir -Wall -Wno-null-conversion -Wno-unused-private-field -Os -g -fno-strict-aliasing -DDBUG_OFF -arch x86_64 " #note: end space! 

和遠程-Wno-null-conversion -Wno-unused-private-filed兩行是這樣的:

cflags="-I$pkgincludedir -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF -arch x86_64 " #note: end space! 
cxxflags="-I$pkgincludedir -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF -arch x86_64 " #note: end space! 

保存文件,然後再執行brew install mysql,它應該工作。

檢查this blog post

+0

我改變了行:cflags =「 - I $ pkgincludedir -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF -arch x86_64」#note:end space! CXXFLAGS = 「 - I $ pkgincludedir -Wall -Os -g -fno嚴格走樣-DDBUG_OFF -arch x86_64的」 #note:結束空間! 但是我有同樣的錯誤信息:( – guilb

+0

brew安裝mysql 警告:mysql-5.6.12已經安裝 – guilb

+0

你有執行'ln -s /usr/local/Cellar/mysql/5.6.12/ lib/libmysqlclient.18.dylib/usr/lib/libmysqlclient.18.dylib'? – taiansu