Установка MySQL2 Gem в Windows
У меня были некоторые проблемы с установкой гема mysql2 на мой компьютер с Windows 8.1. Я следовал инструкциям в этом посте:
Установка Ruby MYSQL2 gem на Windows 7
установитьmysql2
драгоценный камень, и я не получил никаких сообщений об ошибках.
Я последовал за этим с
bundle install
и подтвердил, что установлены следующие гемы (с помощью bundle show), подтверждая, что у меня установлены следующие гемы:
Using devise (3.2.2)
Using mysql2 (0.3.14)
Затем я попытался сделать:
rails generate devise:install
и вот что я получил:
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `require': 126: The specified module could not be found.
- C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2/mysql2.so (LoadError)
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `each'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `block in require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `each'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler.rb:131:in `require'
from C:/Users/Joseph/googledrive/projects/rails/test_new_devise/config/application.rb:7:in `'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `'
from bin/rails:4:in `require'
from bin/rails:4:in `'
Есть идеи?
Решение:Ответ представляет собой комбинацию двух ответов от stackoverflow плюс модификации. Ссылки на переполнение стека:
Установка Ruby MYSQL2 gem на Windows 7 ... mysql2 / mysql2.so: [BUG] Ошибка сегментации ruby 2.0.0p247
Итог: чтобы mysql2 работал в 64-битной среде с Ruby 2 на Windows 8.1, вам нужно сделать следующее:
Очистить: причина, по которой вывот что тыВозможно, вы пытались установить этот гем, но он не удался, поэтому вам нужно выполнить некоторые действия: gem uninstall mysql2
Загрузите Ruby 2.0 64 bit для Windows:
http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct
Запустите установщик. Обратите внимание на каталог, в который он устанавливает, и убедитесь, чтоs в ПУТИ пользователя. идти к
Control Panel > System and Security > System - Advanced System Settings > Environment Variables
и убедитесь, что путь к каталогу bin каталога установки ruby находится в переменной окружения PATH для локального пользователя (it 'также хорошо, если этов переменной среды SYSTEM Path)
Загрузите 64-битный Dev Dev Kit:http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
Запустите установщик и запомните расположение каталога установки. В инструкции сказано, что когда-тоПосле установки вам нужно запустить файл devkitvars.bat, чтобы установить переменные окружения. Это НЕ работает для Windows 8.1. Вам необходимо повторить инструкции, чтобы установить локальный путь, описанный в # 2 выше, чтобы установить переменную среды пути для локального пользователя, чтобы добавить каталог ruby dev kit bin и каталог ruby dev kit mingw bin. Например, если комплект разработчика был установлен в c: \ ruby2devkit, а вы установили ruby2 в каталог C: \ Ruby200-x64, то вы измените свой путь, чтобы он выглядел так:
C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin
Далее необходимо установить mysql-разъем. НЕ загружайте и не запускайте самоинсталлятор. Вместо этого скачайте zip-файл и распакуйте его. Обратите внимание на каталог, в который вы его распаковали (для целей этого поста давайтеПредполагается, что вы распаковали его в c: \ mysql-connector:
http://dev.mysql.com/downloads/file.php?id=450612
Файл libmysql.lib, включенный в 64-разрядную версию MySQL Connector, не совместим с компилятором mingw64-gcc. Вам необходимо создать совместимый с mingw64 файл libmysql.lib.
Загрузите необходимые инструменты
https://structure-svm-map.googlecode.com/files/svm-map-win.zip
Разархивируйте этот файл в локальный каталог,Предполагается, что вы распаковали его в c: \ svm-map
Отредактируйте путь среды PATH, как описано ранее, чтобы теперь выглядеть следующим образом:
C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib
Сгенерируйте новые библиотеки mysql:
(make sure you're running as administrator)
cd c:\mysql-connector\lib
gendef.exe libmysql.dll
dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib
copy libmysql.dll C:\Ruby200-x64\bin
copy libmysql.lib C:\Ruby200-x64\bin
Установите драгоценный камень следующим образом (обратите внимание на использование прямой косой черты вместо обратной косой черты, она не будет выполнена, если вы используете обратную косую черту):
gem install mysql2 --platform = ruby - '--with-MySQL-DIR =»C: / MySQL-разъем / "»
Надеюсь, это поможет, и, надеюсь, кто-то обратит внимание на тех немногих пользователей Windows 8.1, которые хотят заняться разработкой Ruby on Rails.