2013-07-02 1 views
0

Я устанавливаю Ruby 2, Rails 4 и MySQL (с доморощенным).Установить mysql2 на 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, я использовал homebrew для установки mysql – guilb

ответ

1

По какой-то причине установка mysql через homebrew была сломана. Вы должны вручную отредактировать mysql_config.

mysql_config файл доморощенного пребывания в /usr/local/Cellar/mysql/5.6.12/bin, Открыть его с 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-strict-aliasing -DDBUG_OFF -arch x86_64" #note: end space! Но у меня такое же сообщение об ошибке ... :( – guilb

+0

brew install 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