2010-11-23 31 views
1

Obtention de cette erreur de la part de Passenger (avec Apache). Je ne sais pas ce que cela signifie ...Erreur de passager "bibliothèque non chargée"

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 

Le Ruby installé est en fait 1.9.2, mais les pierres précieuses sont dans cette voie « 1.9.1 » pour une raison quelconque ...

Pourrait-il avoir quelque chose à faire avec le fait que j'utilise le mysql2 gem au lieu de mysql?

Ou, peut-être pourrait-il avoir quelque chose à voir avec la 2ème ligne « bibliothèque non chargée » où il semble que cela pourrait essayer de charger le mauvais libmysqlclient.16.dylib? Comme le chemin /usr/local/mysql pointe vers une version de mysql qui n'est pas en cours d'exécution. La version de mysql en cours d'exécution est /usr/bin/. J'essaierais de changer cela mais je ne sais pas comment!?!

Répondre

3

Le announcement for Ruby 1.9.2 dit (sic)

Cette version est "version librariry compatible". Ruby 1.9.2 est presque compatible avec la version 1.9.1, donc la librairie est installée dans le répertoire 1.9.1.

C'est pourquoi les répertoiresRuby sont nommés « 1.9.1 »; c'est normal.


Votre exemple de la pierre mysql2 a été construit à la bibliothèque /usr/local/mysql/lib/libmysqlclient.16.dylib. Pour une raison ou une autre, cette bibliothèque n'est actuellement pas disponible sur votre système à ce chemin (MySQL enlevé/déplacé/mis à jour?).


Vous avez probablement besoin de reconstruire votre mysql2 pierres précieuses et le point à la mysql_config (ou mysql_config5) à partir de votre installation de MySQL (en /usr/bin?):

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

merci! juste par curiosité, j'apprends, où irais-je lire sur les options de construction comme ça? J'ai regardé le ** mysql2 ** docs mais je ne trouve aucune mention. Tellement caché "dans les coulisses" dans Rails, etc ... peut être frustrant. – Meltemi

+0

Cela diffère de gem à gem. Dans votre cas, seuls les auteurs de mysql2 ne font aucun effort pour écrire une documentation d'installation correcte. Dans certains cas, le code source est la meilleure "documentation". Vous devriez contacter les auteurs à propos de ce problème. D'autres auteurs (par exemple, moi-même;)) consacrent beaucoup d'efforts à écrire la documentation appropriée qui couvre également les problèmes d'installation. – Hongli

+0

@Meltemi: Il existe une référence oblique à cette option dans la section "Insalling" du fichier [README] (https://github.com/brianmario/mysql2#readme) qui fait partie de la source. Une recherche a été effectuée [* mysql2 * (closed) issue # 63] (https://github.com/brianmario/mysql2/issues/closed/#issue/63), qui montre la ligne de commande exacte. À la fin, j'ai lu la source pour voir comment cela fonctionnait: les bibliothèques de code natif vivent généralement dans 'ext', et ont un fichier" config "nommé' extconf.rb', donc j'ai regardé ['ext/mysql2/extconf .rb'] (https://github.com/brianmario/mysql2/blob/master/ext/mysql2/extconf.rb). –