认识ldconfig,不但仅可以用于查看库的版本

打印 上一主题 下一主题

主题 1648|帖子 1648|积分 4944

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
ldconfig 是 Linux 系统中的一个重要命令,用于管理动态链接库的缓存和符号链接。它的主要作用是确保系统能够正确地找到并加载动态库(共享库),特别是当你安装了新的库或更改了库的位置时。
以前我们一直用这个功能去查找某一个库的版本号,比如:
  1. ldconfig -p
  2. | grep vtk
复制代码
响应输出一样平常类似这种:
  1.     ibvtkCommonColorTCL-7.1.so.7.1p (libc6,x86-64) => /lib/x86_64-linux-gnu/libvtkCommonColorTCL-7.1.so.7.1p
  2.         libvtkCommonColorTCL-7.1.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libvtkCommonColorTCL-7.1.so
  3.         libvtkCommonColorPython310D-7.1.so.7.1p (libc6,x86-64) => /lib/x86_64-linux-gnu/libvtkCommonColorPython310D-7.1.so.7.1p
  4.         libvtkCommonColorPython310D-7.1.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libvtkCommonColorPython310D-7.1.so
  5.         libvtkCommonColor-7.1.so.7.1p (libc6,x86-64) => /lib/x86_64-linux-gnu/libvtkCommonColor-7.1.so.7.1p
  6.         libvtkCommonColor-7.1.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libvtkCommonColor-7.1.so
复制代码
如许就能判断我们用的是哪一个版本的库
主要功能:


  • 更新动态库缓存:ldconfig 会扫描系统的尺度库目录(如 /lib、/usr/lib 等)和设置文件 /etc/ld.so.conf 中指定的目录,找到全部共享库,并将这些库的路径和文件名缓存到 /etc/ld.so.cache 文件中。如许,当程序运行时,系统能快速找到并加载这些共享库。
  • 创建必要的符号链接:共享库文件通常会有版本号,而程序必要根据不同的库版本使用对应的库文件。ldconfig 还会自动创建符号链接,以确保应用程序能够使用正确版本的共享库。例如,libpcl.so.1.13 可能必要一个符号链接 libpcl.so,指向正确的库版本。
常用命令:



  • 更新库缓存
    1. sudo ldconfig
    复制代码
    这个命令会更新共享库缓存文件 /etc/ld.so.cache,并重新扫描设置文件中的库路径。
  • 指定额外的路径更新库
    1. sudo ldconfig
    2. /usr/local/lib
    复制代码
    如果你安装了库到自界说路径(例如 /usr/local/lib),可以使用这个命令将该路径的库文件添加到缓存中。
  • 查看当前库缓存中的库路径
    1. ldconfig -p
    复制代码
    这个命令会列出当前缓存中全部的共享库及其路径。你可以用 grep 来查找某个特定的库。
  • 添加新的库路径
    编辑 /etc/ld.so.conf 或 /etc/ld.so.conf.d/ 下的文件,添加新的库目录,然后运行 sudo ldconfig
    来更新缓存。
为什么必要 ldconfig?

当你安装或手动编译新的库文件后,系统可能无法立刻辨认这些库的位置。这是因为系统的库缓存没有实时更新,导致应用程序在运行时找不到所需的库。使用 ldconfig 可以重新更新库的缓存,让系统知道新的库文件的位置,确保程序能够正常运行。
范例使用场景:



  • 安装新库:当你安装了新的动态库(如通过源码编译安装的库),你必要运行 sudo ldconfig
    来更新库缓存,让系统能够找到和加载这些库。
  • 手动指定库路径:如果你安装的库位于非尺度目录(如 /opt/lib),你可以将这个路径添加到 /etc/ld.so.conf,并运行 sudo ldconfig
    使其生效。
  • 调试库加载标题:当程序提示无法找到某个共享库时,使用 ldconfig -p
    可以资助你确认系统缓存中是否存在该库,或查抄符号链接是否正确。
总之,ldconfig 是一个管理和更新共享库的重要工具,在确保程序正常使用动态库方面发挥着关键作用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

卖不甜枣

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表