ldconfig命令


ldconfig命令

😄 Written by Zak Zhu

參考

命令簡介

ldconfig概念

  • ldconfig是一個動態庫管理命令, 為了讓動態庫為系統所共享, 須運行該命令.
  • ldconfig通常在系統啟動時運行, 而當用戶安裝了一個新的動態庫時, 就需要手動運行該命令.

ldconfig作用

在默認搜尋目錄(/lib/usr/lib)下, 以及動態庫配置文件(/etc/ld.so.conf/etc/ld.so.conf.d/*.conf)里所列的目錄下, 搜索出可共享的動態庫(格式如lib*.so*), 進而創建出動態裝入程序(ld.so)所需的連接和緩存文件. 緩存文件默認為/etc/ld.so.cache, 此文件保存動態庫名字列表.

命令語法

Usage:

ldconfig [OPTION...] [PATH...]

Options:

OPTION COMMENT
-v 顯示正在掃描的目錄及搜索到的動態庫,
還有它所創建的連接的名字.
-n 僅掃描命令行指定的目錄,
不掃描默認搜尋目錄和動態庫配置文件所列的目錄.
-N 不重建緩存文件.
若未用-X選項, ldconfig照常更新文件連接.
-X 不更新文件的連接.
若未用-N選項, ldconfig照常更新緩存文件
-p 打印出當前緩存文件保存的所有共享庫的名字

注意事項

  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一下, 新的library才能在程序運行時被找到.
  3. 如果想在這兩個目錄以外放lib, 但是又不想在/etc/ld.so.conf中加東西或者是沒有權限加東西. 那也可以, 就是export一個全局變量LD_LIBRARY_PATH, 然后運行程序的時候就會去這個目錄中找library. 一般來講這只是一種臨時的解決方案, 在沒有權限或臨時需要的時候使用.
  4. ldconfig做的這些東西都與運行程序時有關, 跟編譯時一點關系都沒有.
  5. 總之, 就是不管做了什么關於library的變動后, 最好都ldconfig一下, 不然會出現一些意想不到的結果.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM