Mysql ruby ​​gem не устанавливается в Windows 7

Не дубликат. Этот вопрос - это mysql gem, а другой вопрос - gem mysql2. Однако у них есть один и тот же ответ, но другой ответ на вопрос не говорит о том, что решение явно. Ответ скрыт в комментариях. См. Желтый текст ответа для этого вопроса содержит решение.

Ниже приведена ошибка, которую я получаю при попытке установить gsm mysql в Windows.

C:\>gem install mysql
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

    C:/Ruby22-x64/bin/ruby.exe -r ./siteconf20150520-7968-hbly9l.rb extconf.rb
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:/Ruby22-x64/bin/$(RUBY_BASE_NAME)
        --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

extconf failed, exit code 1

Gem files will remain installed in C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql-
2.9.1 for inspection.
Results logged to C:/Ruby22-x64/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0
/mysql-2.9.1/gem_make.out

Как я дошел до этого?

  • Установлен MySQL для Windows.

http://dev.mysql.com/downloads/windows/installer/

  1. Установленный Python для Windows. Этот шаг, вероятно, не имеет ничего общего с моей ошибкой, но я включаю его, поскольку он необходим для сборки, которую я развертываю.

https://www.python.org/downloads/

  1. Установлен Ruby для Windows. Похоже, я загрузил "rubyinstaller-2.2.2-x64.exe и установил это.

http://rubyinstaller.org/downloads/

  1. Установленные Ruby Gems. Похоже, я загрузил и извлек "rubygems-2.4.7.zip".

https://rubygems.org/pages/download

Затем выполнили эти команды из командной строки Windows:

gem update --system

... был установлен в C:/Ruby22-x64/bin/gem

gem install rubygems-update

update_rubygems

... затем cd {папка извлечена zip в}

ruby setup.rb
  1. Затем я попытался установить глагол mysql. И получил ошибку.

    C: > gem install mysql Извлечение: mysql-2.9.1.gem(100%) ОШИБКА: Ошибка при установке mysql:       В собственном камне mysql требуются установленные инструменты сборки.

    Обновите свой PATH, чтобы включить инструменты сборки или загрузить DevKit от 'http://rubyinstaller.org/downloads' и следуйте инструкциям at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

  2. Итак, я выполнил инструкции. Я пошел на эту страницу (http://rubyinstaller.org/downloads). Похоже, я загрузил "DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe". Когда я извлек глупый экстрактор, поместите файлы в один каталог со всем остальным. Поэтому перед загрузкой убедитесь, что вы создали новую папку, и перед извлечением.

Затем я выполнил эту команду.

ruby dk.rb init

Затем я выполнил эту команду и получил ошибку.

ruby dk.rb install

Мне пришлось убедиться, что файл config.yml указал на папку C:\Ruby22-x64 на моей машине, где был установлен Ruby. Я удалил комментарий и изменил путь. Затем запустите команду, и она сработала.

ruby dk.rb install

Затем выполнила эту команду.

gem install rdiscount --platform=ruby
  1. Затем попытался переустановить gem mysql. И получил ошибку в моем вопросе. Какая жемчужина! "Я достал тебе драгоценности Бетти, драгоценности!"

    gem install mysql

EDIT 5/21/2015:

В следующем вопросе я получаю новую ошибку.

Установка gim Ruby MYSQL2 в Windows 7

C:\>gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\
lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysq
l-connector"'
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-mysql-lib="C:\mysql-connector\lib" --wi
th-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connect
or"'
This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    C:/Ruby22-x64/bin/ruby.exe -r ./siteconf20150521-10824-1plgdr8.rb extconf.rb
 --with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connec
tor\include" --with-mysql-dir="C:\mysql-connector"
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using --with-mysql-dir=C:\mysql-connector\include;C:\mysql-connector\include;C:\
mysql-connector
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
*** 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:/Ruby22-x64/bin/$(RUBY_BASE_NAME)
        --with-mysql-dir
        --with-mysql-include=${mysql-dir}/include
        --with-mysql-lib=${mysql-dir}/lib
C:/Ruby22-x64/lib/ruby/2.2.0/rake/task_manager.rb:62:in `[]': Don't know how to
build task 'C:/mysql-connector/lib;C:/mysql-connector/lib;C:/mysql-connector/lib
/libmysql.lib' (RuntimeError)
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:57:in `lookup_prerequisit
e'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `block in prerequis
ite_tasks'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `map'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `prerequisite_tasks
'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:199:in `invoke_prerequisi
tes'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:178:in `block in invoke_w
ith_call_chain'
        from C:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_
chain'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:165:in `invoke'
        from extconf.rb:117:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql2
-0.3.18 for inspection.
Results logged to C:/Ruby22-x64/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0
/mysql2-0.3.18/gem_make.out

C:\>

Ответ 1

"mysql" и "mysql2" пакеты/расширения/драгоценные камни не работают с x64-разрядная версия Ruby для Windows 7 (или любая 64-разрядная версия Windows). Вам необходимо установить x86 (32) битную версию Ruby для их работать.

Итак, я повторил шаг 3 в своем вопросе и установил версию 1.9 вместо ответа от моего комментария по моему вопросу (по вопросу 191) от luislavena 30 августа 2013 года. Это версия x86 (32-разрядная версия). Получил это отсюда.

http://rubyinstaller.org/downloads/

Похоже, что имя файла "rubyinstaller-1.9.3-p551.exe".

Затем завершен шаг 4. Разработчики Ruby должны зафиксировать свои скрипты, чтобы автоматически изменить файл config.yml для версии x86. Мне не нужно было редактировать это время.

Затем для шага 5 я установил этот devkit exe, потому что в более новой версии Ruby не было набора разработчика, который был x86.

Для шага 6 я разместил в нем собственную папку. Он по-прежнему извлекает файлы в корне exe, а не в папку корня exe. Затем выполнялись все команды, кроме последнего. Он по-прежнему выдавал ошибку.

"DevKit-ТДМ-32-4.5.2-20111229-1559-sfx.exe"

Затем для шага 7 я запустил это.

gem install mysql

Он установил версию mysql для x86, потому что я могу увидеть драгоценный камень, выполнив это. Он очень блестящий и выглядит дорогим!

gem list

5/26/2015 обновление:

Последняя версия Ruby при установке в Windows, которая позволяет вам запустите сервер Rails 2.1.6.

Запуск сервера rails не работал, запустив "rails s". Мне пришлось вернуться и удалить старые версии Ruby. См. Мой ответ здесь. Игнорируйте остальные ответы, если вы находитесь в Windows.

Удалите старые версии Ruby (в Windows)

Единственная стабильная версия Ruby для Windows, которая позволяет запустить сервер rails, - "rubyinstaller-2.1.6.exe". "rubyinstaller-2.2.2.exe" выдает следующую ошибку:

C:/row/Ruby22/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2-x86-mingw32/lib/nokogiri
.rb:29:in `require': cannot load such file -- nokogiri/nokogiri (LoadError)
        from C:/row/Ruby22/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2-x86-mingw32
/lib/nokogiri.rb:29:in `rescue in <top (required)>'
... 
... continued