为什么 rpm -q --provides 显示一堆不同的版本

为什么 rpm -q --provides 显示一堆不同的版本

在 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 的软件包,那么该软件包仍然可以满足要求?

这是正确的。

相关内容