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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage