11
votes

Erreur "... impossible de charger un tel fichier - MySQL2 / 2.0 / MYSQL2 (LoadError)". Sous Windows XP avec Ruby 2.0.0

La commande rails serveur code> jette cette erreur

C:\>gem install mysql2 --platform=ruby
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    C:/Ruby200/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby200/bin/ruby
C:/Ruby200/lib/ruby/2.0.0/mkmf.rb:431:in `try_do': The compiler failed to generate an executable file. (Runtim
eError)
You have to install development tools first.
... other code follows here...


0 commentaires

5 Réponses :


5
votes

Désinstaller mysql2-0.3.11-x86-mingw32 , gemmes compilées avant ruby200 ne fonctionnera pas. Vous devez le compiler vous-même. Si vous exécutez gem uninstall mysql2 et il existe une version non compilée répertoriée, alors simplement désinstaller mysql2-0.3.11-x86-mingw32 - la version compilée ...

Installation GEM Installer MySQL2 --Platform = Ruby . Ça marcherait.

Suivez ce guide sur l'installation de devkit http://rubyonwindowsguides.github.com/book/ CH02-04.HTML .

puis réessayez.


0 commentaires

2
votes

exactement le même comportement lorsque j'essaie d'installer redmine sur Windows XP

  • Quand j'essaie de faire le "Rake Generate_Secret_Token", je n'ai pas de charger ce fichier - mysql2 / 2.0 / mysql2 (charreur) "
  • et quand j'essaie de construire mysql2 à l'aide de --platform = ruby, j'ai eu le même message que vous vert.

    Pour le moment, je suis coincé là-bas ... mais si quelqu'un a quelque chose pour me permettre d'aller de l'avant, ce sera le bienvenu. Je resterai informé aussi bien

    antoine


0 commentaires

13
votes

a eu le problème absolument même sur Windows 7 x64 avec Ruby 2.0.0 et Devkit 4.7.

Les étapes suivantes m'ont aidé.

  1. GEM Désinstallation MySQL2

  2. Télécharger le dernier connecteur MySQL de http://cdn.mysql.com/downloads/connector-c/mysql-connector-c-noinstall-6.0.2-win32.zip

  3. extraire à c: \ connecteur-6.0.2

  4. GEM Installer MySQL2 --Platform = Ruby - '--with-mysql-lib = "C: \ Connector-6.0.2 \ Lib" - Peut-être = "C: \ Connector-6.0. 2 \ Inclure "--with-mysql-dir =" C: \ connecteur-6.0.2 "'

    ou même plus court:

    GEM Installez MySQL2 --Platform = Ruby - --with-opt-dir = "C: \ connecteur-6.0.2"


3 commentaires

Ouais, ça a fonctionné! Mais d'abord, vous devez utiliser cmd.exe , pas PowerShell! Deuxièmement, vous devez parfois forcer la version GEM dans votre Gemfile à, par exemple. 0.3.13, car Bundler installe 0.2.6-Mingw version compilée ...


Utilisez ci-dessus si ci-dessus ne fonctionne pas: - GEM Installez MySQL2 --Platform = Ruby - '--with-mysql-lib = "C: \ connecteur-6.0.2 \ lib" - Peut-à-dire = "c : \ connecteur-6.0.2 \ inclure "


@Rohitportwal Vous avez travaillé pour moi, mais vous manquez la finale 'dans la commande, c'est-à-dire que doit être: GEM Installez MySQL2 --Platform = Ruby -' --with-mysql-lib = "C: \ Connector-6.0 .2 \ lib "- -with-mysql-include =" c: \ connecteur-6.0.2 \ inclure "'



2
votes

J'ai presque fait la même chose que @odiszapc décrit. Désinstaller Old Gem, téléchargez MySQL-Connector-C-Noinstall, Unzip, mais enfin, j'ai utilisé cette commande pour construire un gemme natif: xxx

(Si vous utilisez git-bash, vous pouvez utiliser git-bash, vous pouvez utiliser un style UNIX. Syntaxe de répertoire.)


2 commentaires

Veuillez noter que si vous exécutez la mise à jour de l'installation ou de la bundle, la version Mingw de MySQL2 GEM sera à nouveau installée. Vous devez "gem la désinstaller" ça ...


Je devais faire des gems installer mysql2 --platform = ruby ​​- --with-opt-dir = / c / connecteur-6.0.2 --with-mysql-dir = / c / connecteur-6.0.2 ... parce que La compilation a échoué et j'ai remarqué qu'il y a des références à $ {mysql-dir} / include.



2
votes

Copier la pâte de ce lien: https://github.com/bridienmario/mysql2/issues/ 359 . Cela a fonctionné pour moi.


Si après l'installation du gemme, vous obtenez une erreur:

"Le module spécifié n'a pas pu être trouvé.
C: /Devel/Ruby200/LIB/RUBY/GEMS/2.0.0/GEMS/MYSQL2-0.3.11/LIB/MYSQL2/MYSQL2.SO "

qui peut être corrigé en copiant libmysql.dll au dossier bin de Ruby's Bin.


0 commentaires