gpt4 book ai didi

linux - 为什么/lib/ld-linux.so.2 soname 版本颠簸如此罕见?

转载 作者:太空狗 更新时间:2023-10-29 12:18:18 27 4
gpt4 key购买 nike

据我了解,“/lib/ld-linux.so.2”中的“2”很少更改。有不能与新库一起工作的旧程序,也有不能与旧库一起工作的新程序。但它们都引用/lib/ld-linux.so.2,从而阻止安装这两个库。

顺便说一句,版本 'GLIBC_2.17' not found 是什么东西?为什么版本不在soname,而是在别的地方?

最佳答案

每当库以旧程序无法与新版本库一起工作的方式更改时,此编号就会更改。如果旧程序仍可使用较新的库(并且需要新版本的程序不会导致旧库崩溃),则无需更改编号,因为您只需安装最新版本的库即可。

据我了解“2”(十年前是“1”)应该不会再变了。原因很简单:

“ld-linux.so.2”的第一个版本的编写方式使得“ld-linux.so.2”的任何版本都可以与使用该文件的任何程序一起使用 - 可能会在出现错误时打印错误消息使用旧版本的“ld-linux.so.2”。

这意味着:永远不需要安装两个不同的“ld-linux.so.2”文件,但安装该文件的最新版本就足够了。您不应该简单地覆盖此文件,因为它与其他必须具有相同版本的文件(例如“libc.so.6”)捆绑在一起。

在加载程序的“2”版本中,.so 文件可能包含支持的版本号表。因此“libc.so.6”,版本 GLIBC_2.16,可能包含此版本库也支持“GLIBC_2.15”的信息。 (新版本应该向后兼容,所以应该是这样。)

程序可能包含所需版本的列表(例如:程序需要 libc.so.6 版本“GLIBC_2.17”)。加载程序 (ld-linux.so.2) 检查库是否支持程序所需的版本,如果不支持则拒绝启动程序。在这种情况下,您的问题的错误消息由加载程序打印。

关于linux - 为什么/lib/ld-linux.so.2 soname 版本颠簸如此罕见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com