MacOSX Mysql Ruby & MAMP : des pépins dans la pomme
Par david le vendredi 9 avril 2010, 12:09 - Lien permanent
Vous développez en php, sous macosx en utilisant MAMP ?
Si oui tôt ou tard vous viendrez à utiliser rake ou chef pour gerer le build de vos
projets, et là c’est le drame niveau gem Mysql pour ruby ...
Voila comment installer la gem proprement en quelques étapes
!
Pour compiler proprement la gem mysql il est nécessaire de completer ce
que MAMP installe par défaut (juste les binaires indispensables pour le
serveur).
Les opérations suivantes vont ajouter à MAMP des librairies utiles a la
compilation de programmes clients pour mysql et aussi les header des
sources mysql.
Voila ce qui se produit avec MAMP fraichement installé
mulpro:build mulder$ sudo gem install mysql Password:
Building native extensions.
This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
extconf.rb
checking for mysql_query() in -lmysqlclient... no checking for
main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no checking for
main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
Gem files will remain installed in
/Library/Ruby/Gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to
/Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out
Pour mamp 1.8.4, il faut télécharger les sources
MAMP_components_1.8.4.dmg.
Copier le répertoire MAMP_src contenu dans cette image où vous le
souhaitez sur votre disque.
Aller dans ce répertoire et décompressez
mysql-5.1.37.tar.gz
mulpro:~ mulder$ cd developpement/MAMP_src/ mulpro:MAMP_src mulder$ tar -xzf mysql-5.1.37.tar.gz
puis
cd mysql-5.1.37On compile juste les librairies clientes (MAMP a dejà le
serveur)
mulpro:mysql-5.1.37 mulder$ ./configure
--with-unix-socket-path=/Applications/MAMP/tmp/mysql/mysql.sock
--without-server --prefix=/Applications/MAMP/Library mulpro:mysql-5.1.37 mulder$ make -j2
le -j2 permet de gagner un peu de temps sur l’opération de compilation (2
jobs simultanés pdt la compil).
On complète MAMP avec les librairies fraichement compilées
:
mulpro:mysql-5.1.37 mulder$ cp libmysql/.libs/*.dylib
/Applications/MAMP/Library/lib/mysqlEn plus de ces librairies les header des sources de mysql sont aussi
nécessaires pour compiler la gem ruby :
mulpro:mysql-5.1.37 mulder$ mkdir
/Applications/MAMP/Library/include mulpro:mysql-5.1.37 mulder$ cp -R include
/Applications/MAMP/Library/include/mysql
Juste avant de compiler la gem tant attendue, une petite mise a jour de
gem :
sudo gem update --system Et enfin : - si votre OS est 32 bits
sudo env ARCHFLAGS="-arch i386" gem install mysql --
--with-mysql-config=/Applications/MAMP/Library/bin/mysql_config
Et pour un OS 64 bits
sudo env ARCHFLAGS="-arch x86_64" gem install mysql --
--with-mysql-config=/Applications/MAMP/Library/bin/mysql_config qui doit produire
Building native extensions.
This could take a while... Successfully installed
mysql-2.8.1 1 gem installed Ne tenez pas compte des erreurs RDocs, elles sont sans impact !