ldconfig(8) command


大咖好呀,我是恋喵大鲤鱼。

!!! 我的第二本开源书籍《后台开发命令365》上线啦,欢迎大家协同共建。
!!! 我的第二本开源书籍《后台开发命令365》上线啦,欢迎大家协同共建。
!!! 我的第二本开源书籍《后台开发命令365》上线啦,欢迎大家协同共建。

1.命令简介

ldconfig 用于配置动态链接器运行时绑定的动态库。

ldconfig 命令用于在默认搜寻目录 /lib 和 /usr/lib 以及动态库配置文件 /etc/ld.so.conf 内所列的目录下,搜索出可共享的动态链接库(格式如 lib*.so*),进而创建出动态链接器(ld.so 或 ld-linux.so)所需的缓存文件。

缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。为了让动态链接库为系统所共享,需运行动态链接库的管理命令 ldconfig 更新动态链接库的缓存文件。

ldconfig 位于 /sbin 目录下,通常在系统启动时运行,当用户安装了一个新的动态链接库时,需要手动运行这个命令。

2.命令格式

/sbin/ldconfig [ -nNvXV ] [ -f conf ] [ -C cache ] [ -r root ] directory ...
/sbin/ldconfig -l [ -v ] library ...
/sbin/ldconfig -p

3.参数说明

-v, --verbose
	用此选项时,ldconfig 将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的链接的名字

-n
	ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib、/usr/lib),也不扫描配置文件 /etc/ld.so.conf 所列的目录。

-N
	ldconfig 不重建缓存文件(/etc/ld.so.cache),若未用 -X 选项,ldconfig 照常更新文件的链接

-X
	ldconfig 不更新文件的链接,若未用 -N 选项,则缓存文件照常重建

-f <conf >
	指定动态链接库的配置文件为 <conf > ,系统默认为 /etc/ld.so.conf

-C <cache>
	指定生成的缓存文件为 <cache>,系统默认的是 /etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表

-r <root>
	改变应用程序的根目录为 <root>(是调用 chroot 函数实现的)。选择此项时,系统默认的配置文件 /etc/ld.so.conf,实际对应的为 <root>/etc/ld.so.conf。如用 -r /usr/zzz时,打开配置文件 /etc/ld.so.conf 时,实际打开的是 /usr/zzz/etc/ld.so.conf 文件。用此选项,可以大大增加动态链接库管理的灵活性

-l
	通常情况下,ldconfig 搜索动态链接库时将自动建立动态链接库的链接,选择此项时,将进入专家模式,需要手工设置链接,一般用户不用此项

-p, --print-cache
	ldconfig 打印出当前缓存文件保存的所有共享库的名字

-c FORMAT 或 --format=FORMAT:此选项用于指定缓存文件所使用的格式,共有三种:old(老格式),new(新格式)和compat(兼容格式,此为默认格式)。

-V
	打印出 ldconfig 的版本信息

-?, --help, --usage
	这三个选项作用相同,都是让ldconfig打印出其帮助信息

4.常用示例

(1)显示 ldconfig 帮助信息。

ldconfig -?

(2)显示 ldconfig 版本信息。

ldconfig -V

(3)刷新动态链接库缓存文件 /etc/ld.so.cache。

sudo ldconfig

5.注意事项

(1)往 /lib 和 /usr/lib 里面加动态链接库,不用修改 /etc/ld.so.conf,但是完了之后要调一下 ldconfig,不然这个库会找不到。

(2)想往上面两个目录以外加东西的时候,一定要修改 /etc/ld.so.conf,然后再调用 ldconfig,不然也会找不到。

比如安装了一个 mysql 到 /usr/local/mysql,mysql 有一大堆 library在 /usr/local/mysql/lib 下面,这时就需要在 /etc/ld.so.conf 里面加一行 /usr/local/mysql/lib,保存过后执行 ldconfig 更新一下动态链接库缓存 /etc/ld.so.cache,新的 library 才能在程序运行时被找到。

(3)如果想在 /lib 和 /usr/lib 这两个目录以外放 lib,并且又不想在 /etc/ld.so.conf 中加动态链接库的目录(或者是没有权限加)。那么可以 export 一个全局变量 LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找 library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时候使用。

(4)ldconfig 更新动态链接库的缓存文件只与程序运行时有关,跟编译时没有关系。编译时需要加 -L 就得加,不要混淆了。

(5)总之,就是不管做了什么关于 library 的变动后,最好都 ldconfig 一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事。


参考文献

ldconfig(8) - Linux manual page - man7.org
Linux 命令大全.ldconfig命令

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据您提供的引用内容,您遇到的问题是关于Docker的错误响应。根据引用,错误信息是OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused "process_linux.go:385: running prestart hook 1 caused \"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility --require=cuda>=10.0 brand=tesla,driver>=384,driver<385 --pid=8170 /var/lib/docker/overlay2/47e939b1bbc070d3ce4ec0920318a08c0cafb13d80d1716dd42251547bc6e64e/merged]\nnvidia-container-cli: requirement error: unsatisfied condition: brand = tesla\n\""": unknown."。 根据引用,这个错误的原因是由于您拉取的CUDA版本与主机上的CUDA版本不一致导致的。您可以尝试使用以下命令重新拉取镜像以解决这个问题:docker run --runtime=nvidia --rm nvidia/cuda:8.0-runtime nvidia-smi。这个命令可以正常显示显卡的使用信息。如果运行docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi时出错,您可以尝试使用国内链接来安装Docker,具体命令如下:sudo apt-get install curl curl -sSL https://get.daocloud.io/docker | sh sudo usermod -aG docker $USER。这样您就可以在国内链接下使用官方命令安装Docker了。。 至于您提到的"Error: Error response from daemon: Wo command specified"错误,根据提供的信息不够详细,很难给出具体的解决方案。建议您提供更多的上下文信息,以便我能够更好地帮助您解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Moveit Docker的安装与支持GUI的配置过程](https://blog.csdn.net/DoctorSRn/article/details/83053487)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值