我对 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 是导致你的问题的根本原因,除非它引发错误。