`

ldconfig命令详细介绍

 
阅读更多
动态链接库管理命令

为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig.此执行程序存放在/sbin目录下.

ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.

ldconfig命令行用法如下:

ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...

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/etc/ld.so.conf.如用-r /usr/zzz时,打开配置文件/etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件.用此选项,可以大大增加动态链接库管理的灵活性.

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

(9) -p或--print-cache : 此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.

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

(11) -V : 此选项打印出ldconfig的版本信息,而后退出.

(12) -? 或 --help 或 --usage : 这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后退出.

举三个例子:

例1:

# ldconfig -p
793 libs found in cache `/etc/ld.so.cache'
libzvt.so.2 (libc6) =>; /usr/lib/libzvt.so.2
libzvt.so (libc6) =>; /usr/lib/libzvt.so
libz.so.1.1.3 (libc6) =>; /usr/lib/libz.so.1.1.3
libz.so.1 (libc6) =>; /lib/libz.so.1
......
#

注: 有时候用户想知道系统中有哪些动态链接库,或者想知道系统中有没有某个动态链接库,这时,可用-p选项让ldconfig输出缓存文件中的动态链接库列表,从而查询得到.例子中,ldconfig命令的输出结果第1行表明在缓存文件/etc/ld.so.cache中找到793个共享库,第2行开始便是一系列共享库的名字及其全名(绝对路径).因为实际输出结果太多,为节省篇幅,以......表示省略的部分.


例2:

# ldconfig -v
/lib:
liby.so.1 ->; liby.so.1
libnss_wins.so ->; libnss_wins.so
......
/usr/lib:
libjscript.so.2 ->; libjscript.so.2.0.0
libkspell.so.2 ->; libkspell.so.2.0.0
......
/usr/X11R6/lib:
libmej-0.8.10.so ->; libmej-0.8.10.so
libXaw3d.so.7 ->; libXaw3d.so.7.0
......
#

注: ldconfig命令在运行正常的情况下,默认不输出什么东西.本例中用了-v选项,以使ldconfig在运行时输出正在扫描的目录及搜索到的共享库,用户可以清楚地看到运行的结果.执行结束后,ldconfig将刷新缓存文件/etc/ld.so.cache.

例3:

# ldconfig /usr/zhsoft/lib
#

最近新装软件gaim 0.77/ openQ 0.3, 需要关联的包有N多, 又都是新版的才可以。。

装完后建议大家ldconfig一下, 免得后面的安装找不到最新的链接库。

分享到:
评论

相关推荐

    浅谈Linux中ldconfig和ldd的用法

    本文将详细介绍这两个工具的功能、使用方法及其在实际场景中的应用。 #### 二、ldd 命令详解 **1. ldd 命令简介** `ldd` 命令用于查看程序或库文件所依赖的共享库列表。它可以帮助用户快速定位程序运行所需的库...

    Linux系统维护和开发命令详解.pdf

    5. **ldconfig命令**:ldconfig管理系统的动态链接库,创建或更新动态链接库的缓存,确保程序能正确找到所需的库。 6. **ar命令**:ar用于创建、修改和提取归档文件,这些文件通常包含库文件。 7. **set、unset和...

    cuda报错 OSError: libcudart.so.10.0: cannot open shared object file: No such file

    有时候会碰到cuda报错,OSError: libcudart.so.10.0: cannot open shared object ...ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态

    clear命令 清除屏幕

    与该功能相关的Linux命令:ipcrm命令 – 移除一个消息对象、共享内存段或信号集logout命令 – 退出系统nohup命令 – 后端运行程序lua命令 – 独立的Lua解释器bg命令 – 将作业放到后台运行ldconfig命令 – 动态链接...

    最新CertInside 050-710题库分享

    #### 问题4: 关于 `/sbin/ldconfig` 命令的正确陈述是什么? - **选项:** A. ldconfig 命令用于链接目录 B. ldconfig 命令用于配置 LDAP 连接 C. ldconfig 命令用于更新软件库缓存 D. ldconfig 命令用于显示程序所...

    debian linux 常用命令

    本文将根据提供的文档内容,详细介绍Debian Linux中的一些常用命令及其应用场景,旨在帮助客服工程师及系统管理员更好地掌握这些工具,提高工作效率。 #### 二、核心命令详解 1. **`ls` (列出目录内容)** - **...

    linux下动态链接库的使用方法

    ldconfig命令用来在默认目录和ld.so.conf配置的目录下搜索共享库,并创建或更新动态链接程序ld.so所需的动态链接缓存文件/etc/ld.so.cache。这个文件保存了所有共享库的名字列表,用于加速链接库的加载。当安装了新...

    超详细LAMP安装.pdf

    5. 添加 OpenSSL 库目录,使用命令 `#vi /etc/ld.so.conf` 添加 `/usr/local/openssl/lib/`,然后执行 `#/sbin/ldconfig`。 三、curl 库安装 1. 安装 curl 库,首先需要将安装文件解压到 `/usr/local/src` 目录下...

    linux学习.pdf

    这种情况下,需要设置环境变量LD_LIBRARY_PATH或永久地修改/etc/ld.so.conf文件并运行ldconfig命令更新缓存。此外,文档还介绍如何查看文件格式和程序运行时所需的动态库地址。 总而言之,本文档详细介绍了Linux下...

    torque+maui 安装实例

    本文将详细介绍在 Linux 上安装配置 Torque+Maui 的全过程。 一、解压安装包 Torque+Maui 的安装需要首先解压安装包。使用以下命令解压安装包: tar zxvf torque-2.3.6.tar.gz 二、配置环境变量 在解压后的...

    增加自己的so库的办法,默认情况下,编译器只会使用lib和usrlib这两个目录下的库文件

    修改完配置文件后,需要执行`ldconfig`命令来更新缓存。这个命令会重新读取`ld.so.conf`及其子目录中的所有文件,并创建新的`/etc/ld.so.cache`。请注意,如果没有权限,可能需要以root身份运行此命令。 3. **特殊...

    glibc-2.14离线安装包及安装命令

    6. **处理符号链接**:GLIBC的动态链接器`ld.so`通常需要更新为新版本,你可以使用`ldconfig`命令更新缓存,但在这之前,需要先确保新版本的GLIBC已添加到`/etc/ld.so.conf.d`下的配置文件中。 7. **处理依赖**:...

    Linux环境下的OpenCV安装

    在本文中,我们将详细介绍 Linux 环境下的 OpenCV 安装过程。 安装 cmake 在安装 OpenCV 之前,需要安装 cmake,这是一个跨平台的构建工具。首先,下载最新版本的 cmake,例如 cmake-2.8.10.2.tar.gz。然后,执行...

    安装ImageMagick出现error while loading shared libraries的解决方法

    本文将详细介绍遇到这种错误的解决方法,它是在安装和运行ImageMagick时常遇到的问题,希望能够帮助到需要的朋友。 首先,我们来了解共享库文件(.so文件)。在Linux系统中,动态链接的共享库是一种程序可以调用的...

    ubuntu下安装libpcap

    因此,本文将详细介绍如何在 Ubuntu 下正确安装 libpcap 库。 首先,需要安装以下几个依赖包:m4、flex、bison 和 libpcap。安装顺序非常重要,务必按照以下顺序进行安装: 1. 首先,需要下载 m4 的版本。可以从 ...

    windows&linux添加静态路由

    在这篇文章中,我们将详细介绍 Windows 和 Linux 添加静态路由的步骤和命令。 Windows 添加静态路由 在 Windows 系统中,可以使用 Route 命令来添加静态路由。Route 命令的基本语法如下: Route add <目的网络号>...

    linux动态链接的基本知识

    2. **使用ldconfig命令**:`ldconfig`命令用于更新缓存文件`/etc/ld.so.cache`,从而确保动态链接器能够识别最新的共享库位置信息。这通常是在安装新的共享库或更改了共享库路径后需要执行的操作。 3. **ldd命令**:...

    linux库安装.docx

    - 通过 `ldconfig` 命令更新系统缓存,使新的库路径生效。 ### zlib库安装步骤(示例) #### 1. 下载源码包 - **命令**: `wget http://heanet.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz` ...

    ky10 server arm 离线安装openssl3.1.4

    本文将详细介绍如何在KY10 Server ARM架构上离线安装OpenSSL 3.1.4。 首先,我们需要理解KY10 Server ARM是一个基于ARM架构的服务器平台,可能在互联网连接不稳定或者不被允许的情况下需要进行离线安装。离线安装...

    Mini Cheetah PC端环境配置与程序编译_图文

    下面将详细介绍 Mini Cheetah PC 端环境配置与程序编译的过程。 一、依赖库与软件安装教程 在开始配置和编译 Mini Cheetah 的 PC 端环境之前,需要安装一些依赖库和软件。这些依赖库和软件包括: * Mesa-common-...

Global site tag (gtag.js) - Google Analytics