Putty Ekranında Kalan "Shared Object Lib Not Found" Hatası Çözümü
Metin2 PVP sunucularına Putty (SSH) üzerinden start verirken sıkça karşılaşılan hatalardan biri de "Shared object 'lib...' not found, required by 'game'" uyarısıdır. Bu hata, oyunun çalıştırılabilir ana dosyalarının (game ve db binary), FreeBSD işletim sisteminde ihtiyaç duyduğu 32-bit uyumluluk kütüphanelerini veya özel kaynak kod kütüphanelerini bulamaması durumunda ortaya çıkar ve sunucunun açılmasını tamamen engeller. Sorunu çözmek için aşağıdaki adımları sırasıyla uygulayabilirsiniz.
1. Yöntem: Eksik Kütüphaneyi Manuel Olarak Sunucuya Yükleme
Hata mesajında genellikle eksik olan dosyanın adı açıkça belirtilir (Örn:libmd.so.5,libssl.so.10,libstdc++.so.6vb.). Bu dosyayı manuel olarak sisteme tanıtmak en kesin çözümdür:
- Öncelikle hata mesajında adı geçen `.so` dosyasını internetten güvenli bir kaynaktan veya çalışan başka bir Metin2 sunucusundan temin edin.
- Filezilla veya WinSCP ile sunucunuza bağlanın.
- Eksik dosyayı, FreeBSD sürümünüze ve altyapınıza bağlı olarak şu dizine yükleyin:
/usr/lib32/
*(Eğer filesınız daha eski bir işletim sistemi yapısındaysa/usr/lib/dizinini de kontrol edebilirsiniz).* - Yüklediğiniz dosyanın üzerine sağ tıklayın, Dosya İzinleri (Chmod) kısmına girerek değeri 777 olarak güncelleyin.
2. Yöntem: Sembolik Bağlantı (Symlink) Oluşturma
Bazen aranan kütüphane sunucunuzda aslında mevcuttur ancak sadece sürüm numarası farklıdır (Örneğin sunucudalibmd.so.6vardır ama oyunlibmd.so.5arıyordur). Bu durumda sistemi yanıltarak sembolik bağ oluşturabiliriz:
- Putty terminaline bağlanın ve kütüphane dizinine girin:
cd /usr/lib32 - Mevcut olan güncel dosyayı, aranan eski dosya adına köprülemek için şu komutu kendinize göre düzenleyerek çalıştırın:
ln -s libmd.so.6 libmd.so.5 - Bu komut sayesinde oyun
libmd.so.5dosyasını çağırdığında sistem otomatik olarak arka plandalibmd.so.6dosyasını çalıştıracaktır.
3. Yöntem: FreeBSD 32-Bit Uyumluluk Paketlerini Kurma
Eğer sunucunuza sıfırdan kurulum yaptıysanız ve neredeyse hiçbir temel kütüphane bulunmuyorsa, FreeBSD'nin resmi paket yöneticisini kullanarak 32-bit kütüphane kütüphanelerini toplu olarak indirebilirsiniz. Putty üzerinden şu komutları sırasıyla çalıştırın:
pkg update pkg install compat9x-i386 pkg install compat10x-i386 pkg install compat11x-i386
*(Not: Sunucunuzun FreeBSD sürümüne uygun olan compat paketini tercih etmelisiniz. Örneğin FreeBSD 13 kullanıyorsanız `compat13x` paketlerini kurmalısınız).*
4. Yöntem: Source Derleme (Build) Aşamasında Statik Linkleme Yapmak
Eğer oyunun source (kaynak kodları) elinizde mevcutsa, derleme aşamasında kütüphaneleri dışarıdan bağımsız olarak doğrudan game dosyasının içerisine gömebilirsiniz (Static link). Böylece sunucuda hangi kütüphanenin olup olmadığının bir önemi kalmaz:
- Game source klasörünüzdeki
Makefiledosyasını açın. - Derleme seçeneklerinin (Flags) yer aldığı satırlara
-staticparametresini ekleyerek source'u yeniden derleyin (Build alın).
Bu makale PvPSunucusu için özel olarak hazırlanmıştır.