7 Eylül 2011 Çarşamba

psql: symbol lookup error: psql: undefined symbol: PQconnectdbParams

psql e bağlandığımızda bu tarz bir problemle karşılaşıyorsak muhtemelen libpq.so.5 kütüphanesini yanlış yerden okuyordur. genelde versiyon değişikliklerinde başımıza gelebilir.

iki şekilde ben kendi problemimi çözebildim birisi kurulu olan diğer (benim için 8.4 idi ) kütüphanelerini kaldırmak,
diğeride libpq.so.5 gösterdiği yolu değiştirmek.

#ldd /usr/pgsql-9.0/bin/psql çıktısında şöyle bir satır olacaktır.

linux-vdso.so.1 => (0x00007fff6ffd7000)
libpq.so.5 => /usr/pgsql-9.0/lib/libpq.so.5 (0x00007fd2b7b2e000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00000034ffa00000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00000034faa00000)
.......

bu satır hangi libpg.so kütüphanesnin kullandığını gösterir. eğer kullanmasını istediğiniz yoldan farklı ise vermek istediğiniz yolu;

DYLD_LIBRARY_PATH=/usr/pgsql-9.0/lib/libpq.so.5 psql

ile verebiliriz.

Bunlardan bir sonuç alamazsanız ve eğer daha önceki postgres sürümleri işinize yaramıyorsa onları kaldırdığınız taktirde (aslında amaç eski libpq.so.5 yolunu kaldırmak)

rpm -qa|grep postgres

ile kullanmadıklarınızı bulup yum remove ile kaldırabilirsiniz.

Hiç yorum yok:

Yorum Gönder