Невозможно установить гем MySQL2 на Windows 7 - PullRequest
15 голосов
/ 20 марта 2011

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

Я следовал инструкциям из следующего местоположения: 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

Ответы [ 7 ]

30 голосов
/ 20 марта 2011

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

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

gem install mysql2

Который установит последнюю версию (0.2.6 на момент моей публикации), а также предоставляет бинарные файлы для Windows, которые пропускают этап компиляции.

Если вы все еще хотите принудительно выполнить компиляцию (поскольку ваша версия MySQL отличается от той, которая использовалась для создания бинарного гема, вам необходимо установить DevKit RubyInstaller с сайта 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, чтобы избежать проблем с путем с пробелами, которых следует избегать всегда .

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

17 голосов
/ 21 августа 2011

Обыскав способ заставить его работать, я наконец установил его в командной строке:

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 голосов
/ 01 апреля 2011

Если вы по-прежнему не можете установить gem 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.

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

2 голосов
/ 02 января 2014

Начните с RailsInstaller.

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

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

Команде 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каталог:

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

ПРИМЕЧАНИЯ

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

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

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

0 голосов
/ 13 декабря 2013

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

  1. Скачал последнюю версию MySQL Установщик для Windows 7 32 бит
  2. Установил гем с помощью следующей команды: 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

0 голосов
/ 10 декабря 2013
  1. установить 32-битный MySQL-коннектор / c получить его на здесь
  2. скопировать libmysql.dll из каталога, в который вы устанавливаете коннектор / c, в% установленный каталог ruby%/ bin /

, затем переустановите драгоценный камень снова.

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

Из этого:

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

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

...