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
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.37
On 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/mysql
En 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 !