共有ライブラリ読み込み中のエラー: libpq.so.5: 共有オブジェクトファイルを開くことができません。そのようなファイルやディレクトリはありません
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
何か間違っているのでしょうか?
21
3
これを試してみてください。
1:
libpq.so.5
のパスを知る。出力例です。 /usr/pgsql-9.4/lib/libpq.so.5` と出力されました。 何も見つからなかった場合は、使用しているpostgresqlのバージョンとOSプラットフォームに適したpostgresql-libsが既にインストールされているかどうか確認してください。
2: そのライブラリを
/usr/lib
などのよく知られたライブラリパスにシンボリックリンクしてください。注意 64ビット版の場合は、64ビット版のライブラリパスにもシンボリックリンクを張らなければなりません。
3: Be happy !
これらの
libpq
ファイルはどのディレクトリにありますか?環境変数LD_LIBRARY_PATH
にこのディレクトリを指すように設定するか、標準的な場所にあることを確認してみてください。また、以下のようなセクションに
libpq.so.5
のリンクが表示されないのはなぜですか?もしかしたら、ldconfig
を実行すればいいのでは?RHEL 6.5上のPostgres 9.5で同じエラーメッセージが出ていたので、この投稿にたどり着きました。 しかし、
libpq.so.5
というファイルを探しても何も返ってこないので、さらに混乱しました。結局、以下のシンボリックリンクで実行できました。
これらのパスは RHEL 用です。
find / -name libpq.so
を使ってインストール場所を確認し、オリジナルのファイル名で/usr/lib/
と/usr/lib64/
に追加してください。根本的な原因は、インストール時にこのファイルを共有の場所に置かなかったことにあるようです。