Installation von MySQL2 Gem unter Windows
Ich hatte einige Probleme damit, das mysql2-Juwel auf meinem Windows 8.1-Computer zu installieren. Ich habe die Anweisungen in diesem Beitrag befolgt:
Ruby MYSQL2 Gem Installation unter Windows 7
zum installieren dermysql2
gem, und ich habe keine fehlermeldungen bekommen.
Ich folgte dem mit dem
bundle install
Befehl und bestätigte, dass die folgenden Gems installiert sind (mithilfe von Bundle Show), und bestätigte, dass ich die folgenden Gems installiert habe:
Using devise (3.2.2)
Using mysql2 (0.3.14)
Dann habe ich versucht:
rails generate devise:install
und das habe ich bekommen:
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>'
Irgendwelche Ideen?
Lösung:Die Antwort ist eine Kombination aus zwei Antworten von stackoverflow plus Änderungen. Die Stackoverflow-Referenzen sind:
Ruby MYSQL2 Gem Installation unter Windows 7 ... mysql2 / mysql2.so: [BUG] Segmentierungsfehler Ruby 2.0.0p247
Fazit: Damit mysql2 in einer 64-Bit-Umgebung mit Ruby 2 unter Windows 8.1 funktioniert, müssen Sie folgende Schritte ausführen:
Bereinigen: Der Grund, warum Sie hier sind, ist, dass Sie wahrscheinlich versucht haben, dieses Juwel zu installieren, und es ist fehlgeschlagen. Sie müssen also einige Bereinigungen durchführen: gem uninstall mysql2
Download Ruby 2.0 64-Bit für Windows:
http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct
Führen Sie das Installationsprogramm aus. Notieren Sie sich das Verzeichnis, in das es installiert wird, und vergewissern Sie sich, dass es sich im Benutzerpfad befindet. gehe zu
Control Panel > System and Security > System - Advanced System Settings > Environment Variables
und stellen Sie sicher, dass der Pfad zum Verzeichnis bin des Ruby-Installationsverzeichnisses in der Umgebungsvariablen PATH für den Benutzer LOCAL enthalten ist (auch in der Umgebungsvariablen SYSTEM Path ist dies in Ordnung).
Laden Sie das Ruby 2 64-Bit-Entwicklungskit herunter:http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
Führen Sie das Installationsprogramm aus und notieren Sie sich den Speicherort des Installationsverzeichnisses. Die Anweisungen besagen, dass Sie nach Abschluss der Installation die Datei devkitvars.bat ausführen müssen, um die Umgebungsvariablen festzulegen. Dies funktioniert NICHT für Windows 8.1. Sie müssen die Anweisungen wiederholen, um den in Nr. 2 oben beschriebenen lokalen Pfad festzulegen, um die Pfadumgebungsvariable für den lokalen Benutzer festzulegen, mit der das Verzeichnis ruby dev kit bin und das Verzeichnis ruby dev kit mingw bin hinzugefügt werden. Wenn das dev kit beispielsweise unter c: \ ruby2devkit installiert wurde und Sie ruby2 im Verzeichnis C: \ Ruby200-x64 installiert haben, müssen Sie die Pfadangabe folgendermaßen bearbeiten:
C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin
Als nächstes müssen Sie den MySQL-Connector installieren. Laden Sie das Selbstinstallationsprogramm NICHT herunter und führen Sie es aus. Laden Sie stattdessen die Zip-Datei herunter und entpacken Sie sie. Notieren Sie sich das Verzeichnis, in das Sie es entpackt haben (für die Zwecke dieses Beitrags nehmen wir an, dass Sie es in das Verzeichnis c: \ mysql-connector entpackt haben:
http://dev.mysql.com/downloads/file.php?id=450612
Die im MySQL Connector 64-Bit enthaltene libmysql.lib ist nicht mit dem mingw64-gcc-Compiler kompatibel. Sie müssen eine mit mingw64 kompatible libmysql.lib-Datei generieren.
Laden Sie die benötigten Tools herunter
https://structure-svm-map.googlecode.com/files/svm-map-win.zip
Entpacken Sie diese Datei in ein lokales Verzeichnis. Nehmen wir an, Sie haben sie in c: \ svm-map entpackt
Bearbeiten Sie den Pfad der PATH-Umgebung, wie oben beschrieben, so, dass er jetzt wie folgt aussieht:
C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib
Generieren Sie die neuen MySQL-Bibliotheken:
(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
Installieren Sie den Edelstein wie folgt (beachten Sie die Verwendung von Schrägstrichen anstelle von Backslashes; dies schlägt fehl, wenn Sie Backslashes verwenden):
gem install mysql2 --platform = ruby - '--with-mysql-dir = "C: / mysql-connector /"'
Hoffe, dass dies hilft, und hoffentlich wird jemand den wenigen Windows 8.1-Benutzern Aufmerksamkeit schenken, die die Ruby on Rails-Entwicklung durchführen möchten.