2 Stimmen

Installieren Sie das MySQL-Gem für Ruby zusammen mit dem JRuby-Gem

Ich habe das JRuby MySQL-Gem auf meinem Rechner installiert. Allerdings musste ich aus irgendeinem Grund auf Ruby statt JRuby wechseln und alles scheint gut zu funktionieren, außer dass das MySQL-Gem für Ruby nicht installiert ist und jetzt, wenn ich versuche es zu installieren, erhalte ich folgenden Fehler:

Erstelle native Erweiterungen. Dies könnte eine Weile dauern...
FEHLER: Fehler beim Installieren von mysql:
    FEHLER: Beim Erstellen der nativen Erweiterung des Gems ist ein Fehler aufgetreten.

/usr/bin/ruby1.8 extconf.rb --with-mysql-dir=/usr/include/mysql
Suche nach mysql_query() in -lmysqlclient... nein
Suche nach main() in -lm... ja
Suche nach mysql_query() in -lmysqlclient... nein
Suche nach main() in -lz... nein
Suche nach mysql_query() in -lmysqlclient... nein
Suche nach main() in -lsocket... nein
Suche nach mysql_query() in -lmysqlclient... nein
Suche nach main() in -lnsl... ja
Suche nach mysql_query() in -lmysqlclient... nein
Suche nach main() in -lmygcc... nein
Suche nach mysql_query() in -lmysqlclient... nein
*** extconf.rb ist fehlgeschlagen ***
Konnte keine Makefile erstellen, wahrscheinlich aufgrund fehlender notwendiger Bibliotheken und/oder Header. Überprüfen Sie die Datei mkmf.log für weitere Details. Möglicherweise benötigen Sie Konfigurationsoptionen.

Bereitgestellte Konfigurationsoptionen:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include

Ich habe gegoogelt und herausgefunden, dass ich das Paket libmysqlclient12-dev installieren muss.

Aber als ich das versuchte, bekam ich folgenden Fehler:

Lesen der Paketlisten... Fertig
Erstellen der Abhängigkeitsbaum       
Lesen des Zustandsinformationen... Fertig
Paket libmysqlclient12-dev ist nicht verfügbar, wird aber von einem anderen Paket referenziert.
Das könnte bedeuten, dass das Paket fehlt, veraltet ist oder
nur aus einer anderen Quelle verfügbar ist
E: Paket libmysqlclient12-dev hat keinen Installationskandidaten

Jetzt scheine ich an eine Wand zu stoßen und nicht weiterzukommen. Jegliche Hinweise oder Hilfe werden geschätzt.

Prost

1voto

Robert Brown Punkte 10648

Welchen Befehl von Gem benutzt du? Den von Ruby oder den von Jruby?

Probiere which gem aus, wenn du auf *unix bist.

Überprüfe deinen Pfad, um sicherzustellen, dass die C-Ruby-Binärdateien vor den JRuby-Binärdateien liegen (oder entferne JRuby aus deinem Pfad, wenn du es nicht mehr verwenden möchtest).

1voto

Sam DeFabbia-Kane Punkte 2589

Ich nehme an, dass Sie Linux verwenden, basierend auf dem Paketmanager.

libmysqlclient12-dev ist ein Ubuntu-Paket. Wenn Sie eine andere Distribution verwenden, trägt es wahrscheinlich einen anderen Namen. Ich glaube, dass das Fedora-Paket, das Sie benötigen, mysql-devel ist. Wenn Sie mit dem Namen Ihrer Distribution und libmysqlclient12-dev suchen, finden Sie wahrscheinlich genau heraus, was es ist.

Ihre Distribution hat möglicherweise auch vorkompilierte Versionen einiger der Gems. Fedora (das ist, was ich benutze) hat kein vorkompiliertes mysql-Gem, aber eine andere Distribution könnte dies haben. In Fedora heißen sie je nach Gem rubygem-GEMNAME. Zum Beispiel ist das vorkompilierte sqlite-Gem rubygem-sqlite3-ruby.

1voto

Abhijeet Pathak Punkte 1917

Ich hatte dasselbe Problem. Ich habe

apt-get install libmysqlclient-dev

auf Ubuntu ausgeführt und es hat funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X