EnderUNIX Team.


EnderUNIX İpucu

Arkadaşıma gönder , Ana Sayfa

[ Apache ]

"/usr/libexec/ld-elf.so.1: /usr/local/lib/libxml2.so.5: Undefined symbol" - Mesut GÜLNAZ - (2004-11-18 13:42:16)   [3950]

ben bu hatayı apache yi başlatırken xml den kaynaklanan bir sebepten dolayı aldım. Hatanın anlamı şu.
xml gerekli lib dosyalarını bulamıyor. Peki ama neden?
Sisteminizde hangi lib ler kurulu ise tüm bunların yerleri ve tam listesi sistemde kayıtlıdır. Bir yerlerde ama yerin bilmiyorum. Bir program bunlardan birini kullanmak ister ise bu listeye bakarak yerini bulur ve kullanır. Eğer siz bu listeyi yanlışlıkla ya da bilerek sıfırlarsanız ya da silerseniz (benim gibi) bu ve bu tür hata anladığınız gibi sadece apache de değil diğer uygulamalarda da meydana gelebilir.

Peki nasıl sıfırlanır?
BSD de: "ldconfig" bu dosyaları tutar. sisteme kurulan lib leri alır ve kendi dosyasına yazar. bu komut sakıncalı olmakla birlikte benim gibi durumlarda hayat ta kurtarabilir.

Eğer ldconfig komutunu parametresiz olarak çalıştırırsanız kendi listesini yani lib dosyasını sıfırlamış olursunuz. Eğer bunu yaptı iseniz lib listesini tekrar oluşturmak için yapmanız gereken ldconfig komutunu lib dosyalarının path leri ile -m parametresini kullanarak tekrar çalıştırmak

örnek:
#ldconfig -m /usr/lib /usr/local/lib /usr/X11R6/lib

önemli not: bu işlem FreeBSD-4.10 ve 4.9 da gerçekleştirilmiştir

böylelikle lib listiniz tekrar oluşturulmuş oldu. artık sorun olmayacaktır. ama baka bir yerde daha lib leriniz var ise path olarak eklemelisi mantıklı geliyor.

linux de: "ldconfig" komutu /etc/ld.so.conf'un okutulmasını sağlar. yani bir nevi refresh sanırım. o nedenle linux de sorun yok gibi. ama BSD de linux alışkanlıklarınızı kenara atmayı unutmayınız.

Not: Ömer Faruk ŞEN ve çözümünde fikirlerini beyan ederek yardımcı olan diğer arkadaşlara teşekkürler...

Arkadaşıma gönder , Ana Sayfa