原文:https://blog.csdn.net/capecape/article/details/78529159
RPM包與源碼包的區別
1、軟件包分類
源碼包:C源代碼包
rpm包:編譯之后的二進制包
2、源碼包
優點:開源;可以自由選擇所需功能;可看源代碼;卸載方便(直接刪除安裝位置);
缺點:安裝步驟過多;編譯時間過長;
3、RPM包
優點:使用簡單,只需要幾個命令就可以實現包的安裝、升級、查詢、卸載;安裝速度快;
缺點:不能看源代碼;功能選擇不如源代碼靈活;依賴性;
RPM包命名和依賴性
1、RPM包的命名規則
httpd-2.4.6-67.el7.centos.x86_64.rpm
1
httpd 軟件包名
2.4.6 軟件版本
67 軟件發行的次數
el7.centos 適合的linux平台
x86_64 適合的硬件平台
rpm rpm包擴展名
2、RPM包的依賴性
樹形依賴性:a -> b -> c,即a依賴b,b依賴c
環形依賴:a -> b -> c -> a
模塊依賴:模塊依賴查詢網站:www.rpmfind.com
RPM包的安裝、升級、卸載和查詢
1、包全名和包名
包全名 包名
例如:httpd-2.4.6-67.el7.centos.x86_64.rpm 例如:httpd
操作的包時沒有安裝的軟件包時,使用包全名 操作的已經安裝的軟件包時,使用包名
安裝、升級時用 查詢、卸載時用
2、RPM安裝
#rpm包的安裝格式
rpm -ivh 包全名
選項:
-i(install) 安裝
-v(verbose) 顯示詳細信息
-h(hash) 顯示進度
--nodeps 不檢測依賴性
1
2
3
4
5
6
7
8
舉例:
[root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
1
可能會有很多依賴性問題出現,根據一個個依賴性繼續rpm安裝就可以了
3、RPM包升級
#RPM包的升級格式
rpm -Uvh 包全名
選項:
-U (upgrade) 升級
1
2
3
4
5
過程和安裝完全一樣。
4、RPM包的卸載
#RPM包的卸載格式
rpm -e 包名
選項:
-e (erase) 卸載
--nodeps 不檢測依賴性
1
2
3
4
5
6
舉例:
[root@localhost Packages]# rpm -e httpd
錯誤:依賴檢測失敗:
httpd = 2.4.6-67.el7.centos 被 (已安裝) httpd-devel-2.4.6-67.el7.centos.x86_64 需要
[root@localhost Packages]# rpm -e httpd-devel
[root@localhost Packages]# rpm -e httpd
1
2
3
4
5
注:卸載要按照安裝依賴性的反向卸載
5、RPM包的查詢
查詢是否安裝:
[root@localhost ~]# rpm -q 包名
#查詢包是否安裝
選項:
-q 查詢(query)
[root@localhost ~]# rpm -qa
#查詢所有已經安裝的RPM包
選項:
-a 所有
1
2
3
4
5
6
7
8
9
查詢軟件包的詳細信息:
[root@localhost ~]# rpm -qi 包名
#查詢軟件包的詳細信息
選項:
-i 查詢軟件信息(information)
1
2
3
4
查詢包中文件安裝位置
[root@localhost ~]# rpm -ql 包名
#查詢包中文件安裝位置
選項:
-l 列表(list)
1
2
3
4
查詢系統文件屬於哪個RPM包
[root@localhost ~]# rpm -qf 系統文件名
選項:
-f 查詢系統文件屬於哪個RPM包(file)
1
2
3
查詢軟件包的依賴性
[root@localhost ~]# rpm -qR 包名
選項:
-R 查詢軟件包的依賴性(requires)