Saya sadar bahwa objek yang dibagikan di Linux menggunakan "nomor-nomor", yaitu bahwa berbagai versi objek yang dibagikan diberi ekstensi yang berbeda, misalnya:
example.so.1
example.so.2
Saya mengerti idenya adalah memiliki dua file berbeda sehingga dua versi perpustakaan dapat ada pada suatu sistem (sebagai lawan dari "Neraka DLL" pada Windows). Saya ingin tahu bagaimana ini bekerja dalam praktek? Seringkali, saya melihat bahwa example.so
sebenarnya tautan simbolis ke example.so.2
mana .2
adalah versi terbaru. Lalu bagaimana suatu aplikasi tergantung pada versi yang lebih lama example.so
mengidentifikasinya dengan benar? Apakah ada aturan mengenai nomor apa yang harus digunakan seseorang? Atau ini hanya konvensi? Apakah itu masalahnya, tidak seperti di Windows di mana binari perangkat lunak ditransfer antar sistem, jika suatu sistem memiliki versi yang lebih baru dari objek yang dibagikan, itu ditautkan ke versi yang lebih lama secara otomatis ketika dikompilasi dari sumber?
Saya curiga ini berkaitan dengan ldconfig
tetapi saya tidak yakin bagaimana caranya.