2013-06-25 3 views
5

У меня возникли проблемы с установкой gem mysql2 на моей машине.Как установить mysql2 gem под Ruby 1.9.3? Работает под 2.0.0

У меня есть OS X 10.8 с последним Xcode и mySql, установленным через Homebrew. Все рубины установлены с использованием новейшего RVM.

я могу установить mysql2 штраф под рубин 2.0.0-P195

[~]$ rvm use 2.0.0                [ruby-1.9.3-p429] 
Using /Users/aselder/.rvm/gems/ruby-2.0.0-p195 
[~]$ gem in mysql2                [ruby-2.0.0-p195] 
Fetching: mysql2-0.3.11.gem (100%) 
Building native extensions. This could take a while... 
Successfully installed mysql2-0.3.11 
1 gem installed 

Под Руби 1.9.3 и 1.8.7, он не может найти файл mysql.h

[~]$ rvm use 1.9.3                [ruby-1.9.3-p429] 
    Using /Users/aselder/.rvm/gems/ruby-1.9.3-p429 
    [~]$ gem in mysql2                [ruby-1.9.3-p429] 
    Fetching: mysql2-0.3.11.gem (100%) 
    Building native extensions. This could take a while... 
    ERROR: Error installing mysql2: 
     ERROR: Failed to build gem native extension. 

      /Users/aselder/.rvm/rubies/ruby-1.9.3-p429/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=/Users/aselder/.rvm/rubies/ruby-1.9.3-p429/bin/ruby 
     --with-mysql-config 
     --without-mysql-config 


    Gem files will remain installed in /Users/aselder/.rvm/gems/ruby-1.9.3-p429/gems/mysql2-0.3.11 for inspection. 
    Results logged to /Users/aselder/.rvm/gems/ruby-1.9.3-p429/gems/mysql2-0.3.11/ext/mysql2/gem_make.out 

Я также попробовал все варианты параметров командной строки, чтобы получить камень, чтобы найти установку mysql:

eg камень установить mysql2 - --with-MySQL-конфиг =/USR/местные/Opt/MySQL/бен/mysql_config

+1

У меня такая же проблема, и я не смог ее выяснить – vanhowen

+0

У меня такая же проблема. Я на совершенно новой машине (10.8). Ruby 2.0 работает без проблем, а 1.9.2 и 1.9.3 жалуются, что mysql.h отсутствует. – fflyer05

+0

Что вы, версия MySQL? У меня такая же проблема, используя 5.6.12. Удаление и установка 5.6.10 решили проблему. –

ответ

0

Попробуйте установить mysql с помощью Homebrew и на mysql2 камень с помощью Bundler.

brew update 
brew install mysql 

Добавьте следующие строки в Gemfile

gem "mysql2" 

Run:

bundle install 
+1

Я сделал это и по-прежнему получаю ту же ошибку, что @aselder видит – vanhowen

+0

Это, похоже, не работает для меня. Получение такой же ошибки. – fflyer05

+0

Хорошо, попробуйте следовать за этим парнем. Http://stackoverflow.com/questions/11693360/mysql2-gem-cant-build-native-extensions надеюсь, что это решит вашу проблему. Ребята :( –

0

Я решил проблему, понижая MySQL от 5,6 до 5,5 с помощью доморощенного. Не могу предоставить более подробное объяснение, но оно исправлено.

+0

Я попробую это. –

+0

У меня текущая проблема, и я использую 5.5.31 – kyle

3

Я нашел этот ответ, и он решил мои проблемы: Error installing mysql2: Failed to build gem native extension

Цитирование:

В Ubuntu/Debian и других дистрибутивов, используя способности:

sudo apt-get install libmysql-ruby libmysqlclient-dev 

В Red Hat/CentOS и другие распределения с использованием yum:

sudo yum install mysql-devel 

В Mac OS X с Homebrew:

brew install mysql 

Я на Debian и после выполнения указанной выше команды, я побежал:

gem install mysql2 

и она работала нп.

1

Я решаю проблему установки драгоценного камня при запуске сервера mysql!

brew install mysql 

mysql.server start 

bundle install 

Под рубин-1.9.3-p125.

Надеется, что это помогает

+0

Это тоже работало для меня @ Ruby 2.1.2 –

0

У меня было очень глупым решение: я открыл Xcode и принял условие лицензионного соглашения. Обновление загрузило новую версию, и я ничего не смог скомпилировать до тех пор, пока новое соглашение не будет принято вручную.