本文主机频道详细介绍了“linux ldconfig是什么意思”,内容详实,步骤清晰,细节恰当。希望这篇文章《linux ldconfig是什么意思》能帮你解决疑惑。让我们抱着主机频道的想法一起学习新知识。
Linux ldconfig是一个动态链接库管理命令;主要是在默认的搜索目录“/lib”和“/usr/lib”以及动态库配置文件“/etc/ld.so.conf”中列出的目录中,搜索可共享的动态链接库;Ldconfig通常在系统启动时运行,但是当用户安装新的动态链接库时,需要手动运行ldconfig命令。
什么是linux ldconfig?
Ldconfig是一个管理动态链接库的命令。该命令的目的是搜索可共享的动态链接库(lib*。so*如上所述)下默认搜索目录(/lib和/usr/lib)和动态库配置文件/etc/ld.so.conf中列出的目录,然后创建动态加载器(ld.so)所需的连接和缓存文件。
Ldconfig通常在系统启动时运行,但是当用户安装新的动态链接库时,需要手动运行这个命令。
Ldconfig命令参数描述:1。-v或–- verbose:使用此选项时,ldconfig将显示正在扫描的目录、搜索到的动态链接库以及它创建的连接的名称。
2.-n:使用此选项时,ldconfig仅扫描命令行指定得目录,而不扫描缺省目录(/lib,/usr/lib)或配置文件/etc/ld.so.conf中列出得目录.
3.-N:此选项指示ldconfig不要重建缓存文件(/etc/ld.so.cache)。如果不使用-X选项,ldconfig将照常更新文件连接。
4.-X:此选项指示ldconfig不要更新文件连接。如果不使用-N选项,缓存文件将正常更新。
5.-f CONF:该选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf .
6.-C CACHE:该选项指定生成的缓存文件为CACHE,系统默认为/etc/ld.so.cache,该文件存储可共享动态链接库的有序列表。
7.-r ROOT:该选项将应用程序的根目录更改为ROOT(通过调用chroot函数实现)。选择此选项时,默认配置文件/etc/ld.so.conf实际上对应于root /usr/zzz/etc/ld.so.conf。如果使用了-r/usr/zzz,请打开配置文件/etc/ld.so。
8.-l:一般情况下,ldconfig在搜索动态链接库时会自动建立动态链接库的连接。选择此选项后,将进入专家模式,需要手动设置连接。一般用户不需要这个选项。
9.-p或–- print-cache:该选项指示ldconfig打印出当前缓存文件中存储的所有共享库的名称。
10.-c FORMAT或-format=FORMAT:该选项用于指定用于缓存文件的格式。有三种格式:ld(旧格式),new(新格式),compat(兼容格式,默认格式)。
11.-V:该选项打印出ldconfig的版本信息,然后退出。
12.-or - help或-usage:这三个选项的作用是一样的,就是让ldconfig打印出它的帮助信息,然后退出。
在ldconfig中需要注意以下几点:1。在/lib和/usr/lib中添加东西时不需要修改/etc/ld.so.conf文件,但添加后需要调用ldconfig,否则添加的库找不到。
2.如果添加的库不在/lib和/usr/lib中,需要修改/etc/ld.so.conf文件,将库所在的路径追加到这个文件中,然后再次调用ldconfig命令。或者添加*文件。conf和/etc/ld.so.conf.d/下的库的路径,然后执行ldconfig。比如安装MySQL时,需要将其库文件/usr/local/mysql/lib追加到/etc/ld.so.conf文件中。该命令如下所示:
# echo & quot/usr/local/MySQL/lib & quot;& gt& gt/etc/ld.so.conf
# ldconfig -v | grep mysql
查看缓存文件保存的所有共享库。
# ldconfig -p
3.如果添加的库不在/lib或/usr/lib下,没有权限写/etc/ld.so.conf文件,只需要在LD_LIBRARY_PATH环境中更改路径即可。
您可以使用命令export暂时生效
导出LD _ LIBRARY _ PATH = $ LD _ LIBRARY _ PATH:/usr/local/lib
上面的做法只是临时设置了变量LD_LIBRARY_PATH,下次这个变量就无效了。如何把这个值连续写入LD_LIBRARY_PATH?
我们可以将导出语句添加到~/中。bashrc或者~/。bash_profile,前者在每次登录打开shell时读取一次,后者在登录时只读取一次。我的习惯是把它添加到~/.bashrc中,在这个文件的最后,可以使用下面的语句使设置生效:
导出LD _ LIBRARY _ PATH = $ LD _ LIBRARY _ PATH:/usr/local/lib
以上是bash配置环境变量的格式。csh的格式不同:
setenv LD _ LIBRARY _ PATH $ { LD _ LIBRARY _ PATH }:$ { my _ HOME }/lib
修改完成后,记得关闭当前终端,重新打开一个新的终端,这样上面的配置才会生效。
评论前必须登录!
注册