ldconfig动态链接库管理以及修改ld.so.conf.d
將"/usr/local/lib"加入配置文件重
執行命令:
#echo "/usr/local/lib" >> /etc/ld.so.conf
然后再直接執行:
#ldconfig
?
/etc/ld.so.conf.d/* 或/etc/ld.so.conf和ldconfig. /etc/ld.so.conf.d/*目錄下的文件和/etc/ld.so.conf記錄了動態鏈接庫的路徑,系統默認搜索/lib和 /usr/lib,在其他路徑下的庫文件就需在這些文件中指定。或者,還有個方法,就是設置LD_LIBRARY_PATH環境變量,添加其他路徑,多個 中間用:分隔開。ldconfig是一個用來將/etc/ld.so.conf.d/*h 和/etc/ld.so.conf中列出的庫緩存到/etc/ld.so.cache文件中以供使用,因此在裝完一些庫或更新/etc/ld.so.conf文件時,需運行/sbin/ldconfig命令一下。
?
ldconfig是一個動態鏈接庫管理命令
為了讓動態鏈接庫為系統所共享,還需運行動態鏈接庫的管理命令--ldconfig
ldconfig 命令的用途,主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態 鏈接庫(格式如前介紹,lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認為 /etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表.
linux下的共享庫機制采用了類似于高速緩存的機制,將庫信息保存在/etc/ld.so.cache里邊。
程序連接的時候首先從這個文件里邊查找,然后再到ld.so.conf的路徑里邊去詳細找。
這就是為什么修改了ld.so.conf要重新運行一下ldconfig的原因
?Linux系統中,為了讓動態鏈接庫為系統所共享,還需運行動態鏈接庫的管理命令--ldconfig。
? ???1. ldconfig命令的用途:主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態鏈接庫(格式如前介紹,lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件。緩存文件默認為 /etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表。
? ???2. ldconfig通常在系統啟動時運行,而當用戶安裝了一個新的動態鏈接庫時,就需要手工運行這個命令。
?
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一下,不然會出現一些意想不到的結果。不會花太多的時間,但是會省很多的事。?參考:
LINUX動態鏈接庫高級應用
LINUX系統中動態鏈接庫的創建與使用
?
總結
以上是生活随笔為你收集整理的ldconfig动态链接库管理以及修改ld.so.conf.d的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用TCMalloc替换Nginx和Re
- 下一篇: LINUX动态链接库的创建与使用