0615
1.简介
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,不然这个 library 会找不到。
(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 一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事。
原文标题:每天一个 linux 命令(75):ldconfig 命令
文章出处:【微信公众号:linux爱好者】欢迎添加关注!文章转载请注明出处。
拉幕式数码显示技术
基于RS485总线的多机通信系统设计方案解析
sense-id:氧气浓度监测标签
期待满满!12.16华为荣耀Magic新品发布会现场图文直播
小米和摩托罗拉的隔空充电有什么不同?
Linux中的ldconfig命令详解
华为mate10什么时候上市?华为mate10最新消息:最强旗舰机华为mate10将在下半年提前发布,麒麟970+全面屏,华为这次
苹果iPhone在中国未来将还要进一步大降价
Qualcomm宣布推出下一代物联网专用调制解调器
国网福建电力公司计划在2021年基本建成泛在电力物联网
PLC自动化解决方案-ABB可编程逻辑控制器优势及选型应用
一场国家级别的网络战争,降临在德国电信这样一家商业公司头顶
室外非可视网络报警箱
一文看懂手术机器人的现状和未来前景
三功能模式高低亮加爆闪车灯方案 22W降压恒流驱动
基于MRF24J40的IEEE802.15.4无线收发器电路
深度分析AI技术行业在市场发展趋势
KickStart平替来了,性价比更高的源表程控软件
智能家居上下游产业链怎么看待ZigBee3.0
英飞凌推出支持新一代英特尔至强处理器的完整电源管理解决方案,以提高数据中心的性能和能效