2010-11-23 3 views
1

Erhalte diesen Fehler von Passenger (mit Apache). Nicht sicher, was es bedeutet ...Passagierfehler "Bibliothek nicht geladen"

dlopen(/path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): 
Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib 
Referenced from: /path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 
Reason: image not found - /path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 

The Ruby installiert ist eigentlich 1.9.2 aber die Edelsteine ​​sind in diesem „1.9.1“ Weg aus irgendeinem Grund ...

es etwas hätte zu tun mit der Tatsache, dass ich die mysql2 Edelstein statt mysql verwende?

Oder vielleicht könnte es etwas mit der zweiten Zeile zu tun „Bibliothek nicht geladen“, wo es wie es aussieht, könnte versuchen, die falschen libmysqlclient.16.dylib zu laden? Der Pfad /usr/local/mysql verweist auf eine Version von mysql, die nicht ausgeführt wird. Die Version von mysql, die ausgeführt wird, ist in /usr/bin/. Ich würde versuchen, dies zu ändern, aber ich habe keine Ahnung, wie!?!

Antwort

3

Die announcement for Ruby 1.9.2 sagt (sic)

Diese Version ist "librariry kompatible Version". Ruby 1.9.2 ist fast 1.9.1 kompatibel, daher wird die Bibliothek in 1.9.1 direkt installiert.

Deshalb ist die Rubin Verzeichnisse „1.9.1“ genannt werden; es ist normal.


Ihre Instanz des gem mysql2 wurde gegen die /usr/local/mysql/lib/libmysqlclient.16.dylib Bibliothek gebaut. Aus dem einen oder anderen Grund ist diese Bibliothek derzeit nicht auf Ihrem System unter diesem Pfadnamen verfügbar (MySQL wurde entfernt/verschoben/aktualisiert?).


Sie müssen wahrscheinlich Ihr mysql2 Juwel wieder aufbauen und an die mysql_config (oder mysql_config5) aus Ihrer MySQL-Installation (in /usr/bin?) Punkt:

gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config 
+0

danke! nur aus Neugierde, ich lerne, wo würde ich über Build-Optionen wie das lesen? Ich habe mir die ** mysql2 ** docs angeschaut, finde aber keine Erwähnung. So viel verstecktes "hinter den Kulissen" in Rails, etc. ... kann frustrierend sein. – Meltemi

+0

Das unterscheidet sich von Edelstein zu Edelstein. In Ihrem Fall sind es nur die mysql2-Autoren, die keine Mühe darauf verwenden, die richtige Installationsdokumentation zu schreiben. In einigen Fällen ist der Quellcode die beste "Dokumentation". Sie sollten die Autoren zu diesem Problem kontaktieren. Andere Autoren (z. B. ich;)) bemühen sich sehr, eine Dokumentation zu schreiben, die auch Installationsprobleme behandelt. – Hongli

+0

@Meltemi: Es gibt einen schrägen Verweis auf diese Option im Abschnitt "Insalling" der [README-Datei] (https://github.com/brianmario/mysql2#readme), der Teil der Quelle ist. Eine Suche ergab [* mysql2 * (geschlossen) Ausgabe # 63] (https://github.com/brianmario/mysql2/issues/closed/#issue/63), die die genaue Befehlszeile zeigt. Am Ende las ich die Quelle, um zu sehen, wie es funktionierte: Native-Code-Bibliotheken leben normalerweise in "ext" und haben eine "config" -Datei namens "extconf.rb", also habe ich ['ext/mysql2/extconf .rb'] (https://github.com/brianmario/mysql2/blob/master/ext/mysql2/extconf.rb). –