如何理解 ldconfig -p 的输出?

如何理解 ldconfig -p 的输出?
[root@ elf]# ldconfig -p
939 libs found in cache `/etc/ld.so.cache'
    libz.so.1 (libc6,x86-64) => /usr/lib64/libz.so.1
    libz.so.1 (libc6) => /usr/lib/libz.so.1
    libz.so (libc6,x86-64) => /usr/lib64/libz.so

这是什么意思?

答案1

它只是显示动态链接器在缓存中保存了哪些库以及在哪里可以找到它们。这样做是为了让程序能够独立于库的存储位置找到它们所需的库,并减少程序的启动时间,因为它们不需要在启动时搜索,只需在缓存中查找并加载即可。

在这种情况下libz.so.1,有两种可用的变体,一种是 64 位,一种是 32 位,程序只会在启动时询问它们所需的变体并指向正确的文件。

libz.so最后,和之间的区别libz.so.1使得保留库的旧版本以供需要它们的程序使用成为可能。这样,程序可以请求任意版本 ( libfoo.so)、特定版本 ( libfoo.13.2) 或对版本进行一些限制。

相关内容