探索Linux之 軟體包組成和安裝路徑
一、軟體包的組成
通常 不管任何語言,一個軟體通常是由以下兩方面組成
- 靜態軟體包部分
- 執行時產生的必要檔案等動態資料部分
軟體包的靜態部分通常包含:
1 軟體可執行檔案
2 軟體可執行檔案的依賴庫
3 軟體的配置檔案
4 軟體的資原始檔(圖示、執行時需要的音視訊素材等)
5 軟體的額外部分(幫助文件、許可證等)
軟體包執行時的動態部分包含:
1 軟體儲存相關資料的資料庫檔案
2 使用者的個性化配置檔案
3 臨時檔案
4 軟體的擴充套件外掛等
二、軟體安裝路徑規劃
通常按照規約
# bin用來存二進位制可執行檔案或者啟動指令碼檔案
# lib用來存放執行過程中需要的動態載入的庫檔案,一些程式也把程式的預設配置檔案存放到這裡面
# share用來存放程式執行所需的資原始檔、軟體包的幫助文件等等
# etc存放程式全域性的(所有使用者都一樣的)配置檔案(很多程式也會讀取當前使用者home目錄下存放在相關資料夾中的配置檔案,配置檔案的優先順序一般是 1 當前使用者home中的配置 2 etc中的全域性配置 3 程式軟體包裡自帶的預設配置)
1 usr:bin usr:lib usr:share etc
這幾個目錄是存放的是系統執行所需的系統軟體以及通過apt從軟體源上拉取的deb格式的軟體包;deb格式的軟體包由系統命令dpkg進行管理,dpkg中有軟體資訊資料庫,方便安裝、配置、更新和解除安裝軟體;.deb .rpm等linux規範格式的軟體包中的內容都會分散放到這些目錄裡面去。
2 usr:local:bin usr:local:lib usr:local:share usr:local:etc
這幾個目錄可以用來存放自己打包的軟體包,非deb格式的軟體包、或者自己寫的指令碼等命令都可以分類放到這幾個目錄下;
deb格式的軟體包也可以選擇釋放到這幾個目錄下,和1中的那幾個目錄的區別,個人認為
# 軟體重要性的不同,比如系統級軟體和比較普通的軟體的區別
# usr:local:bin usr:local:lib這幾個目錄通常也在系統的環境變數尋找路徑下,適合放置自己寫的一些命令~
3 opt
這個目錄用來存放綠色軟體或者java軟體最合適了,這種軟體包的可執行檔案和其依賴通常都是自包含在一個資料夾下的,比如java軟體,通常所需的jar包等依賴通常都是軟體自帶的,也不需要和其他軟體共享;個人認為,這個目錄就是為非linux規範的軟體包、不受dekg管理的軟體包所準備的~
三、軟體執行時的動態資料存放在哪裡了?
通常、資料庫等軟體的資料庫檔案儲存在var:lib下
臨時檔案存放在tmp下
使用者個性化配置檔案、sqlite等小型資料庫檔案、動態載入的外掛等存放在當前使用者的home目錄下的隱藏檔案裡