我可以通过文件名推断库的版本吗?

Can I infer a library's version by its filename?

我正在尝试将我的文件系统中的库与其版本相关联,以查看它们是否已过时并需要更新。
我的问题是,我应该如何处理文件文件名中的“版本”以及这个版本的可靠性如何?
例如

/usr/lib/libz.so.1.2.3
/usr/lib/liblzma.so.5.2.1

1.2.3和5.2.1真的分别是libz和liblzma的版本吗?

此外,在下面的示例中,有几个库共享相同的版本,在我看来,当版本有新更新时,这几个库会同步它们自己似乎不合逻辑:

/lib/libdl-2.15.so
/lib/libnsl-2.15.so
/lib/libcrypt-2.15.so   
/lib/libnss_dns-2.15.so
/lib/libm-2.15.so
/lib/libc-2.15.so

简而言之,没有。

库名称没有强制执行标准,如果继续查找,您会发现有些库根本没有编号,而且大多数不代表最低级别的版本号。

我认为 yum 或 rpm 命令不仅可以提供更多信息,而且可能已经提供了您正在寻找的功能。

例如,在 CentOS 上列出已安装的软件包:

>> rpm -qa
>> yum list installed

列出要更新的软件包:

https://www.cyberciti.biz/faq/rhel-centos-fedora-suse-list-package-update/