与 ldconfig 命令相关的许多疑问?

与 ldconfig 命令相关的许多疑问?

我对 Linux 还很陌生,我对我在我正在工作的 bash 脚本中发现的这个操作有一些疑问:

ldconfig -v >> /dev/null 2>&1

阅读 ldconfig 命令的手册页,我可以看到:

ldconfig 创建、更新和删除在命令行上指定的目录、文件 /etc/ld.so.conf 和受信任的目录(/usr/lib 和 /lib)中找到的最新共享库的必要链接和缓存(供运行时链接器 ld.so 使用)。

到底是什么意思?我使用的是 Ubuntu 系统,/etc/ld.so.conf我发现:

 include /etc/ld.so.conf.d/*.conf

所以我认为这一行会将我重定向到所有.conf 文件进入/etc/ld.so.conf.d/目录

但我有些困惑……并且有很多疑问:

1).conf 文件包含什么?

2)我的 bash 脚本中的命令到底起什么作用?

谢谢

安德里亚

答案1

没有完整的脚本就无法说,但如果我猜测的话,我会说它正在调用 ldconfig 以确保在脚本的下一部分执行之前已经链接了最新的共享库。

由于没有指定路径,它将根据库内部结构创建任何所需的链接(这将根据您的发行版、是否安装了新内容、安装了哪些库而有所不同)。

如果您想了解它具体在做什么,只需将 stderr 和 stdout 的输出路径更改为/dev/null文本文件(/home/user/ldcheck.txt或类似文件),然后在脚本运行后检查内容。

至于ld.so.conf.d- 的内容通常只包含 libc 之类的默认库路径设置。

这些都是非常标准的东西,所以你最好在这里提一下你的实际问题,我怀疑 ldconfig 是导致你的问题的根本原因,除非它引发错误。

相关内容