一、RPM包命名規則
1、RPM包在哪
RPM包在光盤中
2、RPM包命名原則
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd 軟件包名
2.2.15 軟件版本
15 軟件發布次數
e16.centos 適合的Linux平台
i686 適合的硬件平台
rpm rpm包擴展名
3、RPM包依賴性
樹形依賴:a >>> b >>> c
環形依賴:a >>> b >>> c >>> a
模塊依賴:查詢網站:www.rpmfind.net
二、安裝命令
1、包全名與包名
包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要注意路徑。
包名:操作已經安裝的軟件包時,使用包名,是搜索/var/lib/rpm/中的數據庫。
2、RPM安裝
安裝和升級時一定要在安裝包目錄或者打絕對路徑。
rpm -ivh 包全名
選項:
-i (install) 安裝
-v (verbose) 顯示詳細信息
-h (hash) 顯示進度
--nodeps 不檢測依賴性(絕不允許使用)
注:安裝時要看到第二個100%才說明安裝成功
三、升級與卸載
1、升級
rpm -Uvh 包全名
選項:
-U (upgrade) 升級
2、卸載
rpm -e 包名
選項:
-e (erase)卸載
--nodeps 不檢測依賴性(實際工作中也不允許使用)
四、RPM包查詢
1、查詢是否安裝
rpm -q 包名
# 查詢包是否安裝
選項:
-q 查詢(query)
rpm -qa
# 查詢所有已經安裝的RPM包
選項:
-a 所有(all)
2、查詢軟件包詳細信息
rpm -qi 包名
選項:
-i 查詢軟件信息(information)
-p 查詢未安裝包信息(package)
查詢已安裝包信息
查詢未安裝包信息
注:基本沒啥屌用
3、查詢包中文件安裝位置
rpm -ql 包名
選項:
-l 列表(list)
-p 查詢未安裝包信息(package)
查詢已安裝包文件安裝位置信息
查詢未安裝包文件安裝位置信息
常規安裝位置
4、查詢系統文件屬於哪個RPM包
rpm -qf 系統文件名
選項:
-f 查詢系統文件屬於哪個軟件包(file)
5、查詢軟件包的依賴性
rpm -qR 包名
選項:
-R 查詢軟件包的依賴性(requires)
-p 查詢未安裝包信息(package)
注:查詢依賴性可用性不高
五、RPM包校驗
1、RPM包校驗
rpm -V 已安裝包的包名
選項:
-V 校驗指定rpm包中的文件(verify)
驗證內容中的8個信息的具體內容如下:
s 文件大小是否改變
M 文件的類型或文件的權限(rwx)是否被改變
5 文件MD5校驗和是否改變(可以看成文件內容是否改變)
D 設備的主從代碼是否改變
L 文件路徑是否改變
U 文件屬性(所有者)是否改變
G 文件屬組是否改變
T 文件的修改時間是否改變
我往 httpd 配置文件 /etc/httpd/conf/httpd.conf 加了一行注釋,發現校驗錯誤。
文件類型:
c 配置文件(config file)
d 普通文檔(documentation)
g “鬼” 文件(ghost file),很少見,就是該文件不應該被這個RPM包包含
L 授權文件(license file)
r 描述文件(read me)
2、RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件絕對路徑
-rpm2cpio
# 將rpm包轉換為cpio格式的命令
-cpio
# 是一個標准工具,它用於創建軟件檔案文件和從檔案文件中提取文件
[root@bogon ~]# cpio 選項 < [文件|設備]
選項:
-i :copy-in 模式,還原
-d:還原時自動新建目錄
-v:顯示還原過程