Comment installer MySQL Ruby Gem sur Ubuntu 9.10?

9

Je rencontre un problème pour installer Ruby Gem for MySQL. Voici la commande que je lance:

sudo gem install mysql

et voici le résultat que je reçois:

Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 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... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** 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=/usr/bin/ruby1.8
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include
    --without-mysql-include=${mysql-dir}/include
    --with-mysql-lib
    --without-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Que dois-je faire pour que cela soit installé?

Andrew
la source

Réponses:

27

Grâce à ce fil J'ai découvert que la raison pour laquelle il ne parvient pas à installer est à cause de

... un chemin qui ne va pas quand le paquet a été compilé.

Heureusement, la solution est très simple:

sudo gem uninstall mysql
sudo apt-get install libmysqlclient-dev -y
sudo gem install mysql 

Remarque: J'ai reçu un message d'erreur lors de la tentative de désinstallation de MySQL, mais ce n'est pas grave, car il n'a pas été installé en premier lieu. Lors de l'installation de la gem mysql, j'ai reçu des messages qui ressemblaient à des erreurs: No definition for next_result, mais ce ne sont pas des erreurs. Cela se produit lors de l'installation de la documentation. Ce ne sont que des messages disant qu'il n'y a pas de documentation disponible pour certaines fonctions.

Andrew
la source
4

Vous n'avez pas vraiment besoin de cette gemme pour utiliser MySQL dans Ruby. Un paquet dans Debian / Ubuntu contient déjà le même code déjà préparé et préparé. Il suffit de taper sudo apt-get install libmysql-ruby.

whitequark
la source
4

Sur Ubuntu Hardy, 8.04, j'ai installé apt-get pour fonctionner avec:

sudo apt-get install libmysqlclient15-dev -y
stcorbett
la source