我尝试将 ld.so.cache 文件移动到另一个位置时偶然发现了一个问题。我尝试在其先前的位置为其创建一个符号链接 -- /etc/
-- 但加载程序似乎无法遵循此符号链接。此外,硬链接也不可行,因为新位置位于另一个分区上。
我的最终目的是拥有一个只读根文件系统,这可能是阻止我这样做的最后一件事。
先感谢您!
答案1
我可以确认,至少在 Glibc 中,ld.so
打开/etc/ld.so.cache
.代码在elf/dl-cache.c
在函数中,引用_dl_load_cache_lookup
函数_dl_sysdep_read_whole_file
elf/dl-misc.c
。该函数打开文件并将其映射到内存中;它对符号链接没有任何作用。
避免符号链接需要额外的努力,我想不出加载程序会这样做的任何原因。
要调试您的问题,您可以使用strace
跟踪加载程序正在读取或尝试读取的文件。