我重启电脑后,ld.so.cache
里面的信息仍然存在,所以我的问题如下:
信息总是保存在那里吗?是不是重启后就被删除了之类的?比如 RAM 或浏览器缓存被删除?
当我删除安装了一些共享库的应用程序后,它是否知道也从 中删除信息
ld.so.cache
?如果我使用ldconfig
它会删除信息吗?它实际上是如何运作的?如果我正在安装程序,我的计算机如何知道使用已添加的新库?
apt-get install
运行后ldconfig
?
答案1
Linux 程序使用称为共享对象的库。共享对象的扩展名为 .so。查看命令ls
运行的 SO 用法ldd /bin/ls
默认情况下,库存储在 /lib /usr/lib 和 /usr/local/lib 中(32/64 位为 /lib32、/lib64)。可以找到其他库的信息存储在
/etc/ld.so.conf.d/
.其中有单个 .conf 文件,其中包含特定库的路径,即/opt/foo/lib
.由于 /etc/ld.so.conf.d/ 中的查找非常慢,因此ldconfig
会生成 /etc/ld.so.cache 文件,该文件是该文件的二进制版本,可提高查找速度。先回答第一个问题。不,保留文件。是的,apt-get 或 dpkg (?) 正在触发 ldconfig。其工作原理 - 请参阅 1。
是的,参见 1。
我希望,我做对了。请随时纠正我。
答案2
apt-get
并且dpkg
都调用ldconfig
重建缓存。
我想这是在每次批量操作结束时完成的,但不确定。
我认为没有办法从缓存中删除特定数据,它只是重建,例如:
rm /etc/ld.so.cache
ldconfig
您可以使用它ldconfig -p
来检查缓存的内容。
在我的系统上,ldconfig
每次重新启动都会被调用,但如果/etc/
用于缓存,那么它不会每次都从头开始创建;如果你想要的话,你必须自己重建它。
如果您手动删除一些库,则必须重建它。