軟體包管理簡介二進位包二進位包包括:RPM包,系統預設包。二進位包優點:包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載。安裝速度比源碼包安裝快的多。二進位包缺點:經過編譯,不再可以看到源代碼。功能選擇不如源碼包靈活。依賴性問題。源碼包源碼包的優點:開源,如果有足夠的能力,可以修改... ...
軟體包管理簡介
二進位包
二進位包包括:RPM包,系統預設包。
二進位包優點:
包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載。
安裝速度比源碼包安裝快的多。
二進位包缺點:
經過編譯,不再可以看到源代碼。
功能選擇不如源碼包靈活。
依賴性問題。
源碼包
源碼包的優點:
開源,如果有足夠的能力,可以修改源代碼。
可以自由選擇所需的功能。
軟體時編譯安裝,所以更加適合自己的系統,更加穩定也效率更高。
卸載方便。
源碼包缺點:
安裝步驟較多,尤其安裝較大的軟體集合時,容易出現拼寫錯誤。
編譯過程時間較長,安裝比二進位安裝時間長。
因為是編譯安裝,安裝過程中一旦報錯新手很難解決。
RPM命令管理
RPM包依賴性
樹形依賴:a –> b –> c
環形依賴:a –> b –> c –>a
模塊依賴:模塊依賴查詢網站(www.rpmfind.net)
包全名與包名
包全名:操作的包是沒有安裝的軟體包時,使用包全名。而且要註意路徑。使用包全名的操作包括:安裝、更新。
包名:操作已經安裝的軟體包時,使用包名。是搜索/var/lib/rpm/中的資料庫。使用包名的操作包括:刪除、查詢。
RPM安裝:
rpm -rvh 包全名
-i:install,安裝
-v:verbose,顯示詳細信息
-h:hash,顯示進度
--nodeps:不檢測依賴性
RPM升級:
rpm -Uvh 包全名
-U:upgrade,升級
卸載:
rpm -e 包名
-e:erase,卸載
--nodeps:不檢查依賴性
查詢相關信息:
rpm -qaiplR 包名
-q:query,查詢
-a:all,所有
-i:information,查詢軟體信息
-p:package,查詢未安裝包信息
-l:list,列表
-R:requires,查詢軟體包的依賴性
rpm -qf 系統文件名
-f:file,查詢系統文件屬於哪個軟體包
校驗和文件提取
RPM包校驗:
rpm -V 已安裝的包名
-V:verify,校驗指定RPM包中的文件
驗證內容中的8個信息的具體內容如下:
S:文件大小是否改變
M:文件的類型或文件的許可權(rwx)是否被改變
5:文件的MD5校驗和是否改變(可以看成文件內容是否改變)
D:設備的主/從代碼是否改變
L:文件路徑是否改變
U:文件的屬主(所有者)是否改變
G:文件的屬組是否改變
T:文件的修改時間是否改變
文件類型:
c:config file,配置文件
d:documentation,普通文件
g:ghost file,“鬼文件”,很少見,就是該文件不應該被這個RPM包包含
l:license file,授權文件
r:read me,描述文件
RPM包中文件提取:
rpm2cipo 包全名 | cpio -idv .文件絕對路徑
rpm2cipo:將rpm包轉換為cpio格式的命令
cpio:是一個標準工具,它用於創建軟體檔案文件和從檔案文件中提取文件
常用yum命令
常用操作
查詢:
yum list
查詢所有可用軟體包列表
yum search 關鍵字
搜索伺服器上所有和關鍵字相關的包
安裝:
yum -y install 包名
install:安裝
-y:自動回答yes
升級:
yum -y update 包名
update:升級
-y:自動回答yes
卸載:
yum -y remove 包名
remove:卸載
-y:自動回答yes
yum軟體組管理命令
yum grouplist
列出所有可用的軟體組列表
yum groupinstall 軟體組名
安裝指定軟體組,組名可以由grouplist查詢出來
yum groupremove 軟體組名
卸載指定軟體組
源碼包管理
源碼包安裝
RPM包安裝在預設位置:
/etc/ | 配置文件安裝目錄 |
/usr/bin/ | 可執行的命令安裝目錄 |
/usr/bin/ | 程式所使用的函數庫保存位置 |
/usr/share/doc/ | 基本的軟體使用手冊保存位置 |
/usr/share/man/ | 幫助文件保存位置 |
源碼包安裝在指定位置,一般是/usr/local/軟體名/
RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM包安裝的Apache的啟動方法是:/etc/rc.d/init.d/httpd start 或 service httpd start。
而源碼包安裝的服務則不能被服務管理命令管理,因為沒有安裝到預設路徑中。所以只能用絕對路徑進行服務的管理,如:/usr/local/apache2/bin/apachect1 start。
安裝前先安裝C語言編譯器,下載源碼包,解壓縮下載的源碼包,進入解壓縮目錄……
源碼包的卸載不需要卸載命令,直接刪除安裝目錄即可。不會遺留任何垃圾文件。
腳本安裝包
腳本安裝包並不是獨立的軟體包類型,常見安裝的是源碼包。是人為把安裝過程寫成了自動安裝的腳本,只要執行腳本,定義簡單的參數,就可以完成安裝。非常類似於Windows下軟體的安裝方式。