RPM包命令詳解

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
      # :查詢程序包依賴的包
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章