Linux 共享库的管理/文件名

Linux 共享库的管理/文件名,linux,shared-libraries,Linux,Shared Libraries,我目前正在处理共享库的问题,有一件事我并不真正理解。首先,我将引用维基百科的一句话: Unix和类Unix平台更常用术语共享库或共享对象;因此,.so文件扩展名最常用于标识此类环境中的共享库文件,通常后跟另一个点和版本号(例如libc.so.6) 听起来没那么混乱吧?实际上是这样。我只是看了一下我的/usr/lib目录。。。很多,所以文件。但我不明白的是:有时候我确实有不止一个库文件(例如libz.so-libz.so.1-libz.so.1.2.5)-好的,不同的版本号,所以没问题。。。好吧,

我目前正在处理共享库的问题,有一件事我并不真正理解。首先,我将引用维基百科的一句话:

Unix和类Unix平台更常用术语共享库或共享对象;因此,.so文件扩展名最常用于标识此类环境中的共享库文件,通常后跟另一个点和版本号(例如libc.so.6)

听起来没那么混乱吧?实际上是这样。我只是看了一下我的/usr/lib目录。。。很多,所以文件。但我不明白的是:有时候我确实有不止一个库文件(例如libz.so-libz.so.1-libz.so.1.2.5)-好的,不同的版本号,所以没问题。。。好吧,这不会有问题,但在每一个多库的情况下,除了一个文件之外,所有文件都只是指向一个真实文件的符号链接。 所以我的简单问题是:为什么?为什么有几个文件,几乎相同的文件名,然后只是链接到另一个文件。这并不是只发生一两次的事情


谢谢

之所以这样做,是因为程序可以根据需要依赖特定版本的库

例如,一个程序可能会说“我需要libs”。libz.so的当前默认版本将指向libz.so.1.2.5

另一个程序可能会说“我需要libz的版本1”。libz.so.1的当前默认版本指向libz.so.1.2.5

libz.so.1.2.5大部分都存在,因此您可以确切地知道安装了哪个版本。您可以有多个版本,并根据需要切换符号链接,但通常不会这样做