學習筆記——ldconfig

                ldconfig命令的作用

ldconfig是一個動態鏈接管理庫的命令,其目的是爲了讓動態鏈接庫爲系統所共享。

ldd:查看程序依賴庫

用途:默認搜尋/lib和/usr/lib,以及動態庫配置文件/etc/ld.so.conf內所列的目錄下可共享的動態鏈接庫(格式爲lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件。緩存文件默認爲/etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表。

ldconfig通常在系統啓動時而運行,而當用戶安裝了一個新的動態鏈接庫時,就需要手工運行這個命令。

ldconfig命令再運行正常的情況下,默認不輸出什麼東西

ldconfig參數用法:

        wKioL1iqU7HxX_0VAACGXCCI4lc575.png-wh_50

參數解釋:

(1)-c --format=FORMAT:此選項用於指定緩存文件所使用的格式,共有三種:ld(老格式),new(新格式)和compat(兼容格式,此爲默認格式

(2)-C CACHE:制定生成的緩存文件爲CACHE,系統默認的是/etc/ld.so.cache,此文件存放已排好序的可共享的動態鏈接庫的列表

(3)-f CONF:指定動態鏈接庫的配置文件CONF,系統默認爲/etc/ld.so.conf

(4)-i --ignore-aux-cache:忽略輔助緩存文件

(5)-n:指示ldconfig僅掃描命令行指定的目錄,不掃描默認目錄(/lib,/usr/lib)及配置文件/etc/ld.so.conf所列的目錄

(6)-N :指示ldconfig不重建緩存文件(/etc/ld.so.cache),若未用-X選項,ldconfig照常更新文件的連接

(7)-p :打印出當前緩存文件所保存的所有共享庫的名字

(8)-r ROOT:改變應用程序的根目錄爲ROOT(是調用chroot函數實現的)。選擇此選項時,系統默認的配置文件爲/etc/ld.so.conf,實際對應的爲ROOT/etc/ld.so.conf。如用-r /usr/zzz時,打開配置文件/etc/lc.so.conf時,實際打開的是/usr/zzz/etc/ld.so.conf文件。用此選項,可以大大增加動態鏈接庫管理的靈活性。

(9)-v :顯示正在掃描的目錄及搜索到的動態鏈接庫,還有它所創建的連接的名字

(10)-X : 指定ldconfig不更新文件的鏈接。若未使用-N選項,則緩存文件正常更新

(11)-V :顯示ldconfig版本信息


  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做的這些東西都與運行程序時有關,跟編譯時無關。編譯時該加-L接得加

  5. 不管做了什麼關於library的變動後,都需重新調用ldconfig一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章