Error while loading shared libraries: libpq..5: ne peut ouvrir le fichier objet partagé: Aucun fichier ou répertoire
Je suis en train d'exécuter pg_dump
sur PostgreSQL 9.0.4 serveur qui tourne sur Debian et j'obtiens l'erreur ci-dessous:
./pg_dump: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
libpq.so.5
est un lien vers libpq.so.5.3
comme indiqué ci-dessous
lrwxrwxrwx 1 root root 12 Jun 27 16:24 libpq.so.5 -> libpq.so.5.3
-rwxr-xr-x 1 root root 180749 Jun 21 02:43 libpq.so.5.3
Qu'est-ce que je fais de mal?
OriginalL'auteur McKibet | 2012-10-08
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
1: Connaître le chemin d'accès
libpq.so.5
Exemple de sortie:
/usr/pgsql-9.4/lib/libpq.so.5
Si rien trouvé, vérifiez si vous avez déjà installé le postgresql-libs pour votre version de postgresql et de votre plate-forme OS
2: lien Symbolique de la bibliothèque dans un "bien connu" chemin de la bibliothèque comme
/usr/lib
:À l'Attention de:
Si votre plate-forme est de 64 bits, vous DEVEZ également lien symbolique vers bibliothèques 64 bits path:
3: Être heureux !
OriginalL'auteur Yahya Yahyaoui
Dans quel répertoire sont ces
libpq
fichiers? Vous pouvez essayer de définir la variable d'environnementLD_LIBRARY_PATH
pour pointer vers ce répertoire ou assurez-vous qu'il est dans la norme.Aussi, pourquoi ne pas les
libpq.so.5
lien indiqué dans le "comme illustré ci-dessous la section"? Peut-être vous devriez juste exécuterldconfig
?Essayez
LD_LIBRARY_PATH=/opt/postgres/9.0.4/server/lib ./pg_dump
de commande.Je reçois toujours le même message d'erreur. J'ai même essayé de l'EXPORT LD_LIBRARY_PATH=/opt/postgres/9.0.4/server/lib avant l'exécution de la commande, mais rien de positif.
envisagez-vous de répondre à la question dans le deuxième paragraphe de ma réponse alors?
Désolé c'est une erreur. J'ai édité correctement à la question.
OriginalL'auteur Michael Krelin - hacker
J'ai fait le même message d'erreur sur Postgres 9.5 sur RHEL 6.5, qui m'amènent à ce post. Mais une recherche sur le fichier
libpq.so.5
n'a rien retourné, ce qui rendait les choses plus confuses.En fin de compte suivant les liens symboliques fit tourner
Ces chemins sont pour RHEL, utilisez
find /-name libpq.so
à l'emplacement de votre installation et l'ajouter à la même destination dossiers/usr/lib/
et/usr/lib64/
à l'aide de l'origine du nom de fichier.La cause semble que l'installation ne pas placer ce fichier dans un emplacement partagé.
Pense que ce sera le cas pour la plupart des gens, la seconde est ajoutée par souci d'exhaustivité.
OriginalL'auteur oden
J'ai eu exactement le même problème avec le pg 9.6 installer. Je le fixe comme ça. Plutôt irritant que le programme d'installation n'a pas fait abstraction de cela.
***********post yum install & l'exécution d'initdb *********
Succès. Vous pouvez maintenant démarrer le serveur de base de données à l'aide de:
-bash-4.2$ /opt/rh/rh-postgresql96/root/usr/bin/pg_ctl -D /var/opt/rh/rh-postgresql96/lib/pgsql/data -l fichier de log de démarrage
/opt/rh/rh-postgresql96/root/usr/bin/pg_ctl: error while loading shared libraries: libpq..rh-postgresql96-5: impossible d'ouvrir le fichier d'objet partagé: Aucun fichier ou répertoire de
-bash-4.2$ id
uid=26(postgres) gid=26(postgres) groupes=26(postgres) contexte=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
-bash-4.2$ cat LibFix
ln -s /opt/rh/rh-postgresql96/root/usr/lib64/libpq..rh-postgresql96-5 /usr/lib64/libpq..rh-postgresql96-5
ln -s /opt/rh/rh-postgresql96/root/usr/lib64/libpq..rh-postgresql96-5 /usr/lib/libpq..rh-postgresql96-5
[root@****laboratoire de ~]# ln -s /opt/rh/rh-postgresql96/root/usr/lib64/libpq..rh-postgresql96-5 /usr/lib64/libpq..rh-postgresql96-5
[root@****laboratoire de ~]# ln -s /opt/rh/rh-postgresql96/root/usr/lib64/libpq..rh-postgresql96-5 /usr/lib/libpq..rh-postgresql96-5
[root@****laboratoire de ~]# su - postgres
Dernière connexion le: Jeu 5 Avr 08:57:21 CEST 2018 sur pts/0
-bash-4.2$ /opt/rh/rh-postgresql96/root/usr/bin/pg_ctl -D /var/opt/rh/rh-postgresql96/lib/pgsql/data -l fichier de log de démarrage
serveur de départ
-bash-4.2$ ps -ef | grep postgres
racine 12778 7883 0 09:07 pts/0 00:00:00 su - postgres
postgres 12779 12778 0 09:07 pts/0 00:00:00 -bash
postgres 12802 1 0 09:08 pts/0 00:00:00 /opt/rh/rh-postgresql96/root/usr/bin/postgres-D /var/opt/rh/rh-postgresql96/lib/pgsql/data
postgres 12803 12802 0 09:08 ? 00:00:00 postgres: enregistreur de processus
postgres 12805 12802 0 09:08 ? 00:00:00 postgres: checkpointer processus
postgres 12806 12802 0 09:08 ? 00:00:00 postgres: écrivain processus
postgres 12807 12802 0 09:08 ? 00:00:00 postgres: wal écrivain processus
postgres 12808 12802 0 09:08 ? 00:00:00 postgres: autovacuum lanceur de processus
postgres 12809 12802 0 09:08 ? 00:00:00 postgres: les stats du collecteur de processus
postgres 12810 12779 0 09:08 pts/0 00:00:00 ps -ef
-bash-4.2$ id
uid=26(postgres) gid=26(postgres) groupes=26(postgres) contexte=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
-bash-4.2$ psql
psql (9.6.5)
postgres=# \conninfo
Vous êtes connecté à la base de données "postgres" tant que l'utilisateur "postgres" via socket dans "/var/run/postgresql" au port "5432".
postgres=#
OriginalL'auteur Ade