Instalacja MySQL2 Gem w systemie Windows

Miałem pewne problemy z zainstalowaniem gem mysql2 na moim komputerze z systemem Windows 8.1. Postępowałem zgodnie z instrukcjami w tym poście:

Ruby MYSQL2 instalacja gem na Windows 7

zainstalowaćmysql2 klejnot i nie dostałem żadnych komunikatów o błędach.

Poszedłem za tym z

bundle install 

i potwierdziłem, że następujące klejnoty są zainstalowane (za pomocą programu pakującego), potwierdzając, że mam zainstalowane następujące klejnoty:

Using devise (3.2.2)
Using mysql2 (0.3.14)

Potem spróbowałem:

rails generate devise:install

i to właśnie dostałem:

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 `<top (required)>'
    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 `<top (required)>'
    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 `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

Jakieś pomysły?

Rozwiązanie:

Odpowiedzią jest połączenie dwóch odpowiedzi z przepływu stosu, plus modyfikacje. Odwołania do przepływu stosu to:

Ruby MYSQL2 instalacja gem na Windows 7 ... mysql2 / mysql2.so: [BUG] Błąd segmentacji ruby ​​2.0.0p247

Konkluzja: aby mysql2 działał w 64-bitowym środowisku z Ruby 2 w Windows 8.1, musisz wykonać następujące czynności:

Posprzątaj: powodem, dla którego tu jesteś, jest to, że prawdopodobnie próbowałeś zainstalować ten klejnot, który się nie powiódł, więc musisz trochę oczyścić: gem uninstall mysql2

Pobierz Ruby 2.0 64 bit dla Windows:

http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct

Uruchom instalator. Zanotuj katalog, w którym się instaluje, i upewnij się, że znajduje się w ścieżce użytkownika. iść do

Control Panel > System and Security > System - Advanced System Settings > Environment Variables

i upewnij się, że ścieżka do katalogu bin katalogu instalacyjnego ruby ​​znajduje się w zmiennej środowiskowej PATH dla użytkownika LOCAL (jest również OK, jeśli jest w zmiennej środowiskowej SYSTEM Path)

Pobierz zestaw Ruby 2 64 bit Dev Kit:

http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

Uruchom instalator i zanotuj lokalizację katalogu instalacyjnego. Instrukcje mówią, że po zakończeniu instalacji musisz uruchomić plik devkitvars.bat, aby ustawić zmienne środowiskowe. To NIE działa w systemie Windows 8.1. Musisz powtórzyć instrukcje, aby ustawić ścieżkę lokalną opisaną powyżej w punkcie 2, aby ustawić zmienną środowiskową ścieżki dla lokalnego użytkownika na dodanie katalogu ruby ​​dev kit bin i katalogu ruby ​​dev kit mingw bin. Na przykład, jeśli zestaw dev został zainstalowany na c: rubydevkit, a ty zainstalowałeś ruby2 w katalogu C: Ruby200-x64, to edytuj swoją ścieżkę tak, aby wyglądała następująco:

C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin

Następnie musisz zainstalować złącze mysql. NIE pobieraj i nie uruchamiaj instalatora. Zamiast tego pobierz plik zip i rozpakuj go. Zwróć uwagę na katalog, w którym go rozpakowałeś (dla celów tego posta załóżmy, że rozpakowałeś go do c: mysql-connector:

http://dev.mysql.com/downloads/file.php?id=450612

Plik libmysql.lib zawarty w 64-bitowym łączu MySQL nie jest kompatybilny z kompilatorem mingw64-gcc. Musisz wygenerować plik libmysql.lib zgodny z mingw64.

Pobierz potrzebne narzędzia

https://structure-svm-map.googlecode.com/files/svm-map-win.zip

Rozpakuj ten plik do lokalnego katalogu, załóżmy, że rozpakowałeś go do c: svm-map

Edytuj ścieżkę środowiska PATH, jak opisano wcześniej, aby teraz wyglądać tak:

C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib

Wygeneruj nowe biblioteki 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

Zainstaluj klejnot w następujący sposób (zwróć uwagę na użycie ukośników zamiast ukośników odwrotnych, nie powiedzie się, jeśli użyjesz ukośników odwrotnych):

gem install mysql2 --platform = ruby ​​- '--with-mysql-dir = "C: / mysql-connector /"'

Mam nadzieję, że to pomoże, i miejmy nadzieję, że ktoś zwróci uwagę na kilku użytkowników Windows 8.1, którzy chcą tworzyć program Ruby on Rails.

questionAnswers(1)

yourAnswerToTheQuestion