Ruby gem mysql2 ошибка установки - PullRequest
13 голосов
/ 07 сентября 2010

У меня установлена ​​версия Ruby 1.9.2p0 (2010-08-18) [i386-mingw32] в Windows7. и драгоценный камень 1.3.7

Когда я пытался установить mysql gem, он показывает Failed to build gem native extension ошибку, почему это так? моя версия mysql 5.1.36 (WampServer)

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

E:/Ruby192/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... *** 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
        --without-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=E:/Ruby192/bin/ruby
E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to genera
te an executable file. (RuntimeError)
You have to install development tools first.
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:435:in `try_link0'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:440:in `try_link'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:552:in `try_func'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:797:in `block in have_func'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postp
one'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
        from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:796:in `have_func'
        from extconf.rb:9:in `<main>'


Gem files will remain installed in E:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.
2.3 for inspection.
Results logged to E:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.2.3/ext/mysql2/ge
m_make.out

E:\RubyApps\test_app2>

Ответы [ 9 ]

34 голосов
/ 16 марта 2012

Если у вас возникла такая же проблема в Linux, в основном вам просто нужно сначала установить несколько библиотек. Это сработало для меня.

> sudo apt-get install libmysql-ruby libmysqlclient-dev

> gem install mysql

источник: http://heatware.net/ruby-rails/solved-installing-mysql-gem-extconf-rb-failed-error/

6 голосов
/ 13 сентября 2010

Поскольку это продолжает появляться на Google как один из лучших результатов, я должен отметить, что этот ответ почти 2 года назад. Вот более обновленный ответ: Как использовать гем "mysql2" в приложении Rails 3 для Windows 7?


По словам разработчика, уже сообщается об ошибке, и он работает над разделением mysql2 на Windows. На данный момент - это все еще в работе. Используйте более старый драйвер mysql сейчас или используйте sqlite для локальной разработки.

Это из обсуждения групп Google

Blockquote Эй, Эрванн, Уже есть заявка на трекер проблем mysql2 для поддержки Win32 на http://github.com/brianmario/mysql2/issues#issue/8. Вы можете следовать это для прогресса; Я делаю все возможное, чтобы все работало гладко для вы парни. Держись! :)

2 голосов
/ 16 июля 2011

это работает, c:> gem install mysql2 - '--with-mysql-lib = "C: \ Prog ram Files \ MySQL \ MySQL, Connector C 6.0.2 \ lib \ opt "--with-mysql-include =" C: \ Progra m Files \ MySQL \ MySQL, Connector C 6.0.2 \ include "'

Временно улучшая PATH, чтобы включить DevKit ...

Создание собственных расширений. Это может занять некоторое время ...

успешно установлен mysql2-0.3.6

1 драгоценный камень установлен

Установка документации ri для mysql2-0.3.6 ...

Включающий класс / модуль 'mMysql2' для класса Client неизвестен

Установка документации RDoc для mysql2-0.3.6 ...

Включающий класс / модуль 'mMysql2' для класса Client неизвестен

Примечание:

I. Если в вашем mysql нет библиотеки lib и include, тогда установите соединитель mysql c

II. Сначала установите DevKit , затем только вы можете установить плагин mysql2 в Windows https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

2 голосов
/ 21 октября 2010

Только для записи: проблема должна быть решена!

Выпущен mysql2 gem v.0.2.6 с поддержкой win32.

gem install mysql2 теперь работает без проблем.

См .: http://github.com/brianmario/mysql2/issues/issue/8#issue/8/comment/479748

0 голосов
/ 05 июня 2017

Можно попробовать

gem install mysql2 -v '0.0.00' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include
0 голосов
/ 13 марта 2015

Под Cygwin я должен был быть уверен, что установил не только libmysqlclient18, но и libmysqlclient-devel. Тогда "gem install mysql2" прошел нормально.

Также в Cygwin есть, конечно, пакет ruby-mysql2.

0 голосов
/ 31 марта 2011

Правильно ли вы установили DevKit? Если сомневаетесь, перепроверьте шаги установки на - http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

Мне удалось установить gem mysql2 после выполнения этих шагов.

0 голосов
/ 02 марта 2011

используйте

gem install mysql

для Windows, пока mysql2 не получит правильное значение.

0 голосов
/ 07 сентября 2010

key: строка, в которой говорится, что сначала нужно установить инструменты разработки. ref: devkit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...