在 Fedora 31 上,如果我运行:rpm -q --provides glibc
除其他外,我得到:
libc.so.6(GCC_3.0)
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.1)
libc.so.6(GLIBC_2.1.2)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.10)
libc.so.6(GLIBC_2.11)
libc.so.6(GLIBC_2.12)
libc.so.6(GLIBC_2.13)
libc.so.6(GLIBC_2.14)
libc.so.6(GLIBC_2.15)
libc.so.6(GLIBC_2.16)
libc.so.6(GLIBC_2.17)
libc.so.6(GLIBC_2.18)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.2.1)
libc.so.6(GLIBC_2.2.2)
libc.so.6(GLIBC_2.2.3)
libc.so.6(GLIBC_2.2.4)
libc.so.6(GLIBC_2.2.6)
libc.so.6(GLIBC_2.22)
libc.so.6(GLIBC_2.23)
libc.so.6(GLIBC_2.24)
libc.so.6(GLIBC_2.25)
libc.so.6(GLIBC_2.26)
libc.so.6(GLIBC_2.27)
libc.so.6(GLIBC_2.28)
libc.so.6(GLIBC_2.29)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.3.2)
libc.so.6(GLIBC_2.3.3)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.30)
libc.so.6(GLIBC_2.4)
libc.so.6(GLIBC_2.5)
libc.so.6(GLIBC_2.6)
libc.so.6(GLIBC_2.7)
libc.so.6(GLIBC_2.8)
libc.so.6(GLIBC_2.9)
我对这个输出感到困惑 - 当我运行时dnf info glibc
,glibc 的版本是 2.30。如果 glibc 是 2.30 版本,那么如何提供这么多 glibc 版本?它们从何而来?这是否意味着如果我安装了一个需要旧版本 glibc 的软件包,那么该软件包仍然可以满足要求?
答案1
这里rpm -q --provides
列出了您正在查看的包中的库提供的版本符号。libc6
包含多个版本符号,因为它提供了以向后不兼容方式更改的函数的多种实现,以保持向后兼容性。看ldd 输出中的多个 GLIBC 版本意味着什么?了解详情。
这是否意味着如果我安装了一个需要旧版本 glibc 的软件包,那么该软件包仍然可以满足要求?
这是正确的。