Gem MySql avec Rails sur Snow Leopard Server 10.6.7

Mac OS X Snow Leopard Server intègre MySql mais pas toutes les librairies nécessaires à l’installation du Gem MySql (Ruby package).

L’éxécution de la commande :

[code type= »shell »]<br /><br />sudo env ARCHFLAGS="-arch x86_64" gem install mysql<br /><br />[/code]

Provoque l’erreur suivante

[code type= »shell »]<br /><br />ERROR:  Error installing mysql:<br /> ERROR: Failed to build gem native extension.<br /><br /> /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb<br />checking for mysql_ssl_set()… no<br />checking for rb_str_set_len()… no<br />checking for rb_thread_start_timer()… no<br />checking for mysql.h… no<br />checking for mysql/mysql.h… no<br />*** extconf.rb failed ***<br />Could not create Makefile due to some reason, probably lack of<br />necessary libraries and/or headers.  Check the mkmf.log file for more<br />details.  You may need configuration options.<br /><br />Provided configuration options:<br /> –with-opt-dir<br /> –without-opt-dir<br /> –with-opt-include<br /> –without-opt-include=${opt-dir}/include<br /> –with-opt-lib<br /> –without-opt-lib=${opt-dir}/lib<br /> –with-make-prog<br /> –without-make-prog<br /> –srcdir=.<br /> –curdir<br /> –ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby<br /> –with-mysql-config<br /> –without-mysql-config<br /><br />Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 for inspection.<br />Results logged to /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out<br /><br />[/code]

Pour résoudre ce problème voici les étapes à suivre :

  1. Récupérer le binaire correspondant à la version de MySql installé avec la version de Mac OS X.
    Depuis le site http://www.opensource.apple.com/release/mac-os-x-1067/ les derniers chiffres de l’url correspondent à la version de mac os X (ici 10.6.7)
    Rechercher MySql et cliquer l’icône
  2. Depuis une fenêtre de terminal décompresser l’archive.
    Le support Apple fait référence à une commande qui devrait normalement décompresser l’archive à la racine (le -C /) celle ci n’est pas fonctionnelle avec le fichier récupéré qui contient un dossier racine « MySQL-54.binaries ».

[code type= »shell »]<br /><br />cd /dossier_contenant_l_archive<br />tar -xzvf MySQL-54.binaries.tar.gz<br />rsync -a –verbose MySQL-54.binaries/usr/ /usr<br />env ARCHFLAGS="-arch x86_64" gem install mysql2 — –with-mysql-config=/usr/bin/mysql_config<br />[/code]