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.