首页 > 解决方案 > 我可以通过文件名推断库的版本吗?

问题描述

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

/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

标签: linuxfilesystemsshared-objects

解决方案


简而言之,没有。

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

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

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

>> rpm -qa
>> yum list installed

列出要更新的软件包:

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


推荐阅读