Debianで実行されているPostgreSQL 9.0.4サーバーでpg_dump
を実行しようとしていますが、次のエラーが表示されます。
./pg_dump: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
libpq.so.5
は、以下に示すlibpq.so.5.3
へのリンクです
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
私が間違っているのは何ですか?
これを試して:
1:libpq.so.5
のパスを知る
find / -name libpq.so.5
出力例:/usr/pgsql-9.4/lib/libpq.so.5
何も見つからない場合、postgresqlバージョンとOSプラットフォームに適したpostgresql-libsがすでにインストールされているかどうかを確認します
2:/usr/lib
のような「既知の」ライブラリパスにあるライブラリのシンボリックリンク:
ln -s /usr/pgsql-9.4/lib/libpq.so.5 /usr/lib/libpq.so.5
注意:プラットフォームが64ビットの場合、64ビットライブラリパスへのシンボリックリンクも必要です。
ln -s /usr/pgsql-9.4/lib/libpq.so.5 /usr/lib64/libpq.so.5
3:幸せになろう!
これらのlibpq
ファイルはどのディレクトリにありますか?このディレクトリを指すように環境変数LD_LIBRARY_PATH
を設定するか、標準の場所にあることを確認してください。
また、「下に示すように」セクションにlibpq.so.5
リンクが表示されないのはなぜですか?たぶんldconfig
を実行するだけですか?
RHEL 6.5のPostgres 9.5でも同じエラーメッセージが表示され、この投稿につながりました。しかし、ファイルの検索libpq.so.5
は何も返しませんでした。
最後に、次のシンボリックリンクが実行されました
ln -s /opt/rh/rh-postgresql95/root/usr/lib64/libpq.so.rh-postgresql95-5 /usr/lib64/libpq.so.rh-postgresql95-5
ln -s /opt/rh/rh-postgresql95/root/usr/lib64/libpq.so.rh-postgresql95-5 /usr/lib/libpq.so.rh-postgresql95-5
これらのパスはRHEL用です。find / -name libpq.so
インストールの場所を特定し、同じインストール先フォルダに追加します/usr/lib/
および/usr/lib64/
元のファイル名を使用。
根本的な原因は、インストールがこのファイルを共有場所に配置しなかったためです。