Kesalahan saat memuat pustaka bersama: libpq.so.5: tidak dapat membuka file objek bersama: Tidak ada file atau direktori seperti itu

Saya mencoba mengeksekusi pg_dump pada server PostgreSQL 9.0.4 yang berjalan di Debian dan saya mendapatkan kesalahan di bawah ini:

./pg_dump: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory 

libpq.so.5 adalah tautan ke libpq.so.5.3 seperti yang ditunjukkan di bawah ini

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

Apa yang saya lakukan salah?

Coba ini:

1: Ketahui jalur libpq.so.5

find / -name libpq.so.5

Contoh keluaran: /usr/pgsql-9.4/lib/libpq.so.5 Jika tidak menemukan apa-apa, periksa apakah Anda telah menginstal postgresql-libs yang sesuai untuk versi postgresql Anda dan platform OS Anda

2: Symbolic link pustaka tersebut di dalam "well known" library path seperti /usr/lib:

ln -s /usr/pgsql-9.4/lib/libpq.so.5 /usr/lib/libpq.so.5

Perhatian: Jika platform Anda 64 bit, Anda juga HARUS menautkan secara simbolik ke jalur pustaka 64 bit:

ln -s /usr/pgsql-9.4/lib/libpq.so.5 /usr/lib64/libpq.so.5

3: Berbahagialah!

Komentar (0)

Di direktori mana file libpq ini berada? Anda dapat mencoba mengatur variabel lingkungan LD_LIBRARY_PATH untuk menunjuk ke direktori ini atau pastikan direktori ini berada di tempat standar.

Juga, mengapa link libpq.so.5 tidak ditampilkan di bagian "seperti yang ditunjukkan di bawah ini &"? Mungkin anda harus menjalankan ldconfig?

Komentar (16)

Saya mendapatkan pesan kesalahan yang sama pada Postgres 9.5 di RHEL 6.5 yang membawa saya ke postingan ini. Tetapi pencarian untuk file libpq.so.5 tidak menghasilkan apa-apa, yang membuat segalanya lebih membingungkan.

Pada akhirnya tautan simbolik berikut ini membuatnya berjalan

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

Jalur ini untuk RHEL, gunakan find / -name libpq.so untuk lokasi instalasi Anda dan tambahkan ke folder tujuan yang sama /usr/lib/ dan /usr/lib64/ dengan menggunakan nama file asli.

Akar penyebabnya adalah instalasi tidak menempatkan file ini ke lokasi bersama.

Komentar (2)