redhat系統CD光牒中,自帶了大量的以rpm結尾的軟體包,我們稱之為rpm包或者叫作二進制包,與二進制包相對的,還有源碼包.
二進制包的安裝比較簡單,可以直接使用rpm指令加參數來完成軟體包的管理,安裝,解除安裝,更新與簽名驗證等.但是也可能會比較麻煩,因為可能存在依賴關系,當我們要安裝軟體包A的時候,A包可以依賴于軟體包B,我們又要安裝B的時候,B又依賴于軟體包C,安裝C的時候,C又需要安裝B等,如果存在這樣的依賴關系,解決起來,是比較讓人頭疼的.好在在RMP之後,又出現了YUM這個好用的工具,本次先不說YUM和軟體包的依賴關系,先簡單說一下RPM
RPM:Redhat Package Manage OR RPM Package Manager,我也不知道是哪一個名字更準确,呵呵.
我們看一下rpm軟體包的指令方式.
指令方式:name-version-Release.OS.arch.rpm
例:yum-updateonboot-1.1.16-13.el5.noarch.rpm
其中各字段的意思如下.
name 軟體包的名字
Version 主版本号,次版本号,修訂号
Release 發行号
OS 作業系統
arch 平台
rpm管理軟體包管理:
安裝
rpm -i
rpm -ivh(v越多,顯示資訊越詳細,最多支援3個V.h顯示進度條的,一個#代表2%)
rpm -ivh --nodeps強制安裝,忽略依賴關系 --force 強制安裝
解除安裝
rpm -e
rpm -e --nodeps
更新
rpm -Uvh
U如果要更新的軟體包沒安裝,那麼則安裝
rpm -Fvh
F如果要更新的軟體包沒安裝,則更新不了.
查詢
rpm -q
p 查詢軟體包安裝完成後的相關資訊,用于查詢還沒安裝的軟體包.如 rpm -qpl 查詢軟體包安裝完成後,将生成哪些檔案.一般要結合以下子參數來查找指定軟體包的相關資訊.
a 查詢所有軟體包
i 查詢軟體包的摘要資訊(作者,平台等)
l 查詢軟體包安裝完成後,生成了哪些檔案
c 隻顯示軟體包的配置檔案
d 隻顯示軟體包的文檔
f 查詢指定檔案是由哪些軟體包生成的.
--scripts 顯示軟體包安裝完成後,執行了哪些腳本.
--changelog 顯示軟體包的更新新增功能.
校驗
rpm -V
rpm -K 驗證軟體包的簽名
--nodigest
--nosignature
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 導入redhat的公鑰,檢驗是根據公鑰來進行的,我們安裝redhatCD光牒上的軟體包的時候,就要用到redhat的公鑰來進行檢驗.如果安裝别人制作的軟體包, 就要用制作人的公鑰來進行檢驗.
sha1和md5是驗證資料包的完整性,軟體包沒有被修改過
dsa和 是驗證軟體包的發行者
S file Size differs 檔案大小改變
M Mode differs (includes permissions and file type) 檔案權限發生改變
5 MD5 sum differs 檔案的MD5發生改變
D Device major/minor number mismatch 檔案的主裝置号或次裝置号發生改變
L readLink(2) path mismatch readlink的路徑不比對
U User ownership differs 屬主發生改變
G Group ownership differs 屬組發生改變
T mTime differs 最後一次修改時間發生了改變.
rpm軟體包的校驗,是能過rpm的軟體包資料庫來進行校驗的,安裝完軟體,都會把該軟體的相關資訊生成到rpm的資料庫,在校驗的時候,跟這個資料庫對比
# rpm --initdb 生成資料庫(如果事先存在庫,不會覆寫)
# rpm --rebuild 重建資料庫(無論有沒有庫,都會覆寫重建)