rpm命令是RPM軟件包的管理工具。rpm原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序,由於它遵循GPL規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的採用。RPM套件管理方式的出現,讓Linux易於安裝,升級,間接提升了Linux的適用度。
RPM包與源碼包的區別
1、軟件包分類
源碼包:C源代碼包
rpm包:編譯之後的二進制包
2、源碼包
優點:開源;可以自由選擇所需功能;可看源代碼;卸載方便(直接刪除安裝位置);
缺點:安裝步驟過多;編譯時間過長;
3、RPM包
優點:使用簡單,只需要幾個命令就可以實現包的安裝、升級、查詢、卸載;安裝速度快;
缺點:不能看源代碼;功能選擇不如源代碼靈活;依賴性;
RPM包命名和依賴性
RPM包的命名規則
1、 httpd-2.4.6-67.el7.centos.x86_64.rpm
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
rpm基本功能
1、rpm命令用於管理程序包:
主要 作用:安裝、升級、卸載、查詢、校驗、數據庫維護
2、rpm具體使用方法
(1)語法:rpm[OPTIONS] [PACKAGE_FILE] 即 rpm 【選項】【包文件】
(2)相關選項參數命令
安裝:-i,--install
升級:-U,--update,-F
卸載:-e.--erase
查詢:-q --query
校驗:-V,--verify
數據庫維護:--builddb,--initdb
3、各選項參數詳解
(1)安裝:rpm {-i|--install} [install-options] PACKAGE_FILE ..
rpm -ivh PACKAGE_FILE ..(rpm包常規安裝命令)
GENEARL OPTIONS:綜合選項
-i:安裝
-v: 詳細信息
-vv:更加詳細的信息
-h:hash marks 輸出進度條:50個#表示進度條
--prefix :安裝指定目錄
--test:測試安裝,檢查並報告安裝是否完成 --> rpm -ivh --test PACKAGE_FILE ..
--nodeps:忽略依賴關係,不建議操作 --> rpm -ivh --nodepst PACKAGE_FILE
--replacepkgs:重新安裝rpm包 --> rpm -ivh --replacepkgs PACKAGE_FILE
--nosignature:不檢查簽名信息,不檢查來源合法性
--nodigest:不檢查包完整信息:
舉列:
[root@localhost leiyuncai]# rpm -ivh zsh- 5.0.2-14.el7.x86_64.rpm
注意:忽略 --nodeps 依賴關係強制安裝可能會導致所安裝包不能夠正常工作
(2)升級
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ..
rpm {-F|--freshen} [install-options] PACKAGE_FILE ..
-U: 升級或者安裝
-F:單純的升級,如果之前沒有rpm包將無法升級
--test:測試安裝,檢查並報告完成 --> rpm -Uvh --test PACKAGE_FILE ..
--nodeps:忽略依賴關係,不建議操作 --> rpm -Uvh --nodepst PACKAGE_FILE
--replacepkgs:重新安裝rpm包 --> rpm -ivh --Ueplacepkgs PACKAGE_FILE
--oldpackage::降級操作
--force:強制升級
舉列:[root@localhost leiyuncai]# rpm -Uvh zsh-5.0.2-14.el7.x86_64.rpm
注意:(1)不要對內核做升級操作,Liunx支持多內核並存,直接安裝新版本
(2) 如果源程序包的配置文件安裝後曾修改過,升級時,新版本的程序提供的同一配置文件不會覆蓋原有版本文件,而重命名爲(FILENAME,rpmnew)
(3)卸載:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...
rpm -e 軟件包名稱
-e:卸載指定程序
-allmatches:卸載所有匹配指定名稱的程序包的各個版本
--nodeps:忽略依賴關係
--test:測試卸載,顯示依賴關係
舉列:
[root@localhost ~]# rpm -e zsh
(4) 查詢
rpm {-q|--query} [select-options] [query-options]
select-options:給指定值,一般是需要查詢文件名稱
-a.all:查詢所有已經安裝過的包,後面一般通過管道輸出至正則表達式匹配-列如: rpm -qa | grep "^z"
-f FILE:查看指定的文件由哪個程序包安裝生產:
-p, --package PACKAGE_FILE:對於未安裝的程序包執行查詢操作
--whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供
--whatrequlres CAPABILITY:查詢指定的-CAPABILITY被哪個程序包依賴
[query-options]
--changelog:查詢rpm包的changelog; 歷史
-l --list:列出程序包安裝生產的文件列表
-i,--info:查詢程序包相關的信息,包含版本、信息、時間等等
-c,:查詢程序包有哪些指定的配置文件
-d:查詢指定的程序包提供的文檔信息
--provides:列出指定程程序包的 CAPABILITY
-R,--regulres:查詢程序包依賴的包
--scripts:查看程序包自帶的腳本片斷
舉列:
1.[root@localhost Packages]# rpm -qa
#:查詢所有安裝的包
2.[root@localhost Packages]# rpm -qpi httpd-devel
#:查詢未安裝包的詳細信息
3.[root@localhost Packages]# rpm -qi httpd-devel
#:查看程序包的相關信息
4.[root@localhost Packages]# rpm -ql httpd-devel
#:查看程序包安裝產生的文件列表
5.[root@localhost Packages]# rpm -qc zsh
#:查看程序包的配置文件
6.[root@localhost Packages]# rpm -qd zsh
#:查看程序包提供的文檔信息
7.[root@localhost Packages]# rpm -qR zsh
# :查詢程序包依賴的包