Bibliothèque non chargée :/usr/local/lib/libpq.5.4.dylib
-
14-11-2019 - |
Question
Je travaille sur une application Rails.
Postgresql installé à l'aide de postgresql-9.1.2-1-osx.dmg
Gemme pg installée.
Puis quand j'ai exécuté rake db:create
obtenir l'erreur suivante -
dlopen (/users/sathishvc/.rvm/gems/ruby-1.9.3-head@knome-vivace/gems/pg-0.12.2/lib/pg_ext.bundle, 9):Bibliothèque non chargée :/usr/local/lib/libpq.5.4.dylib
Vérifié si /usr/local/lib/libpq.5.4.dylib
existe ou pas.Ce ne est pas.
Donc, il devrait exister ailleurs dans le système ou je ne sais pas si je dois installer un autre logiciel pour cela.
Un conseil à quelqu'un s'il vous plaît ?
La solution 3
Quelque temps après avoir posté cette question, j'ai découvert que libpq.5.4.dylib
Réside dans /Library/PostgreSQL/9.1/lib/
.
J'ai donc créé le lien suivant :
lrwxr-xr-x 1 sathishvc admin 43 Jan 28 23:40 /usr/local/lib/libpq.5.4.dylib -> /Library/PostgreSQL/9.1/lib/libpq.5.4.dylib
.
Cela a alors résolu le problème.
Autres conseils
si vous avez mis à niveau PostgreSQL avec homebrew (brew update && Brew Upgrade), désinstallez simplement la gemme pg :
gem uninstall pg
bundle install
et le chemin sera corrigé pour vous.Pas besoin de désinstaller l'intégralité du cluster PostgreSQL.
J'ai rencontré ce problème après être passé à PostgresApp et supprimé la version PostgreSQL existante via
brew remove postgres
J'ai finalement résolu le problème en réinstallant PostgreSQL via
brew install postgres
J'ai pu conserver l'utilisation de PostgresApp en ajoutant ce qui suit à mon .bash_profile
export PATH="/Applications/Postgres.app/Contents/MacOS/bin:/usr/local/bin:$PATH"
Vous pouvez également essayer d'exécuter :
brew doctor
Comme cela m'a alerté de cela ainsi que de quelques erreurs supplémentaires.
Cette erreur affectait également ma capacité à utiliser la gemme Paperclip car elle provoquait l'échec d'ImageMagick avec la même erreur.
(Sous OS X 10.8.2)
Dans mon cas, la désinstallation/réinstallation de Gem n'a pas aidé.Mais j'ai ajouté le chemin de la bibliothèque PostgreSQL à $DYLD_LIBRARY_PATH
variable d'environnement dans mon ~/.bash_profile
:
export DYLD_LIBRARY_PATH=/Library/PostgreSQL/9.3/lib:$DYLD_LIBRARY_PATH
Si MySQL est également installé, cette ligne peut ressembler à :
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:/Library/PostgreSQL/9.3/lib:$DYLD_LIBRARY_PATH
Bien sûr, faites attention au numéro de version dans le chemin PostgreSQL, au moment d'écrire ces lignes, il s'agit de 9.3.J'utilise RVM, Ruby 2.0.0, pg gem 0.17.0, sur Mac OS X 10.6.
Essayer brew prune
puis réinstallez
ce n'est pas une réponse directe à la question mais peut se poser fréquemment
Deux cas supplémentaires qui pourraient être intéressants si vous avez mis à jour PostgreSQL avec homebrew :
- vous avez procédé par le passé à un élagage de versions de gemmes
- votre application est plus ancienne et ne peut pas prendre une version récente de pg (j'ai une application Rails 2 qui échoue avec pg 0.17 et qui tue presque le serveur :le mkmr.log augmente de façon exponentielle... essayez 200 Go !)
vous pouvez en fait avoir de nombreuses versions de pg sur lesquelles compter
quand tu cours
gem uninstall pg
si vous disposez de plusieurs versions, le système vous demandera quelle version vous souhaitez supprimer.Mais cette liste pourrait vous être utile !Comme alternative à la réponse d'awenkhh, vous pouvez vous arrêter là et réinitialiser vos gemmes à une version acceptable.