Wie installiere ich MySQL Ruby Gem unter Ubuntu 9.10?

10

Ich habe ein Problem bei der Installation von Ruby Gem für MySQL. Dies ist der Befehl, den ich ausführe:

sudo gem install mysql

und dies ist die Ausgabe, die ich bekomme:

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

Was muss ich tun, damit dies installiert wird?

Andrew
quelle

Antworten:

27

Dank dieses Threads habe ich herausgefunden, dass der Grund für die fehlgeschlagene Installation der folgende ist

... ein Pfad, der beim Kompilieren des Pakets in die falsche Richtung weist.

Zum Glück ist die Lösung sehr einfach:

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

Hinweis: Beim Versuch, MySQL zu deinstallieren, wurde eine Fehlermeldung angezeigt. Dies ist jedoch in Ordnung, da es nicht installiert wurde. Während der Installation des MySQL-Gems wurden Meldungen angezeigt, die wie Fehler aussahen: No definition for next_resultDies sind jedoch keine Fehler. Dies geschieht bei der Installation der Dokumentation. Es handelt sich lediglich um Nachrichten, die besagen, dass für bestimmte Funktionen keine Dokumentation verfügbar ist.

Andrew
quelle
4

Sie brauchen dieses Juwel nicht wirklich, um MySQL in Ruby zu verwenden. In Debian / Ubuntu gibt es ein Paket, das bereits denselben Code kompiliert und vorbereitet hat. Geben Sie einfach ein sudo apt-get install libmysql-ruby.

Whitequark
quelle
4

Unter Ubuntu Hardy, 8.04 habe ich die apt-get-Installation zum Arbeiten:

sudo apt-get install libmysqlclient15-dev -y
stcorbett
quelle