Linux altındaki paylaşılan nesnelerin "sayılar" kullandığını, yani paylaşılan nesnenin farklı sürümlerine farklı uzantılar verildiğini biliyorum, örneğin:
example.so.1
example.so.2
Anladığım kadarıyla, bir kütüphanede iki sürümün bir sistemde bulunabileceği (Windows'taki "DLL Hell" in aksine) iki ayrı dosyaya sahip olmak olduğunu biliyorum. Bunun pratikte nasıl çalıştığını bilmek ister misiniz? Çoğu zaman bunun example.so
aslında en son sürümün example.so.2
nerede .2
olduğuna dair sembolik bir bağlantı olduğunu görüyorum . Öyleyse, daha eski bir sürüme bağlı olarak bir uygulama example.so
doğru olarak tanımlayabiliyor mu? Kullanılması gereken numaralarla ilgili herhangi bir kural var mı? Yoksa bu basitçe kongre mi? Bu durumda, Windows'ta yazılım ikili dosyalarının sistemler arasında aktarıldığı durumlarda, bir sistem paylaşılan bir nesnenin daha yeni bir sürümüne sahipse, kaynaktan derlerken otomatik olarak eski sürüme bağlanır mı?
Bununla ilgili olduğundan şüpheleniyorum ldconfig
ama nasıl olduğundan emin değilim.