Не удалось установить MySQL2 gem в Windows 7

Во время установки появляется следующее сообщение об ошибке: дайте мне знать, если мне нужно опубликовать более подробную информацию.

Я следил за инструкциями из следующего места: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

Я использую ruby ​​1.9.2p136 (2010-12-25) [i386-mingw32].

Вот что я получаю:

E:\work_desk\trunk>gem install mysql2 -v 0.2.4
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

C:/Ruby192/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... yes
checking for main() in -llibmysql... no
*** 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=C:/Ruby192/bin/ruby
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-libmysqllib
        --without-libmysqllib


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

Ответ 1

Конкретная версия mysql2 gem, которую вы пытаетесь установить (0.2.4), не только не содержит двоичных файлов для Windows, но и имеет проблемы с Windows.

Пожалуйста, установите gem mysql2 без указания версии:

gem install mysql2

Что будет устанавливать последняя версия (0.2.6 во время моего размещения), а также предоставляет двоичные файлы для Windows, которые пропускают шаг компиляции.

Если, вы все равно хотите принудительно скомпилировать компиляцию (поскольку ваша версия MySQL отличается от той, которая используется для генерации бинарного драгоценного камня, вам нужно будет установить RubyInstaller DevKit с веб-сайта RubyInstaller:

http://rubyinstaller.org/downloads

И следуйте инструкциям Инструкции по установке DevKit из нашей вики (это связано со страницей загрузки)

Вам необходимо указать путь к заголовкам и библиотекам во время процесса установки gem и настроить местоположение установки MySQL из следующих инструкций:

subst X: "C:\Program Files (x86)\MySQL\MySQL Server 5.1" 
gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt 
subst X: /D

В приведенной выше команде используется subst, чтобы избежать проблем с путём с пробелами, которые следует избегать всегда.

Надеюсь, что это поможет.

Ответ 2

После поиска возможности для его работы я наконец-то установил его в командной строке:

gem install mysql2 -v 0.2.6

Со следующими результатами:

Fetching: mysql2-0.2.6-x86-mingw32.gem (100%)
Successfully installed mysql2-0.2.6-x86-minw32
1 gem installed
Installing ri documentation for mysql2-0.2.6-x86-mingw32...
Enclosing class/module 'mMysql2' for class Client not known
Installing RDoc documentation for mysql2-0.2.6-x86-mingw32...
Enclosing class/module 'mMysql2' for class Client not known

Попробуйте. Он должен работать.

Ответ 3

Если вы все еще не можете установить gim mysql2 на windows7 или не очень четко на шагах, чтобы следовать, пожалуйста, прочитайте этот пост, который поможет вам в пошаговой установке - http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

И для ошибки mysql_api.so(C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql-2.8.1-x86-mingw32/lib/1.9/mysql_api.so) скопируйте файл "libmySQL.dll" с C:\Program Files\MySQL\MySQL Server 5.1\bin на C:\Ruby192\bin

Путь установки может отличаться, подробности см. в этом сообщении - http://rorguide.blogspot.com/2011/03/getting-error-specified-module-could.html.

Надеюсь, это поможет вам разобраться в ваших проблемах.

Ответ 4

Начните с RailsInstaller.

Предполагается, что вы используете локальный сервер mysql (локальная разработка), а ваш Ruby скомпилирован 32-разрядный. (Проверьте ruby -v. X64 || i386.)

Загрузите mysql-community-web-installer. В правом верхнем углу выберите 32-битный. Вам в значительной степени нужен сервер. Workbench также удобен.

Команде gem требуется путь без пробелов, поэтому используйте subst:

subst X: "C:\Program Files (x86)\MySQL\MySQL Server 5.6"
gem install mysql2 -v=0.3.13 --platform=ruby -- --with-mysql-dir=X:

Вам понадобится libmysql.dll в PATH - проще всего скопировать его в каталог Ruby bin:

copy "C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\libmysql.dll" "C:\RailsInstaller\Ruby2.0.0\bin"

Примечания

Не делайте этого с PowerShell! (DevKit имеет проблемы с изменением информации о пути в powershell.)

Убедитесь, что все библиотеки 32-разрядные, поскольку RailsInstaller ruby ​​и т.д. все скомпилированы 32-разрядными и должны быть связаны с 32-разрядными библиотеками.

Если вы не хотите, чтобы сервер был локально, просто установите C-коннектор и выполните эти инструкции с этим каталогом и libmysql.dll. Не смешивайте и не сопоставляйте - убедитесь, что .dll соответствует версии, с которой вы собрали драгоценный камень.

Ответ 5

Из этого:

checking for main() in -llibmysql... no

похоже, что вы не установили драйверы и приложения MySQL. Если да, то разрешено ли устанавливать их в свои местоположения по умолчанию? Как минимум вам понадобится клиентское программное обеспечение, если сервер работает на другой машине.

Ответ 6

  • установить 32-битный mysql-коннектор/c получить здесь
  • скопируйте файл libmysql.dll из каталога, в который вы устанавливаете соединитель /c, в% установленный рубиновый каталог%/bin/

затем снова установите жемчуг.

Ответ 7

Я пробовал решение @Mrk Fldig, но он не работал... Так что проблема решена:

  • Загружен последний MySQL Установщик для Windows 7 32 бит
  • Установлен камень со следующей командой: gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'

Одна ошибка, о которой нужно помнить, заключается в том, что я изменил обратную косую черту (\) на нормальные косые черты (/). Я пробовал такую ​​же процедуру с обратными косыми чертами, и это не сработало.

Установщик уже включает в себя соединители C для MySQL в каталоге MySQL Connector C 6.1 6.1.2. Поэтому, передавая только параметр --with-mysql-dir без параметров --with-mysql-lib или --with-mysql-include, заставляет драгоценный камень искать тот же каталог для каталогов lib и include