rpm命令參數使用詳解
CentOS系統上rpm命令管理程序包:
主要分爲:安裝、升級、卸載、查詢和校驗、數據庫維護
使用格式:rpm命令:rpm [OPTIONS] [PACKAGE_FILE]
選項:
安裝:-i,--install
升級:-U,--update,-F,--freshen
卸載:-e,--erase
查詢:-q,--query
校驗:-V,--verify
數據庫維護:--builddb,--initdb
一、安裝
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm -ivh PACKAGE_FILE ...
GENERAL OPTIONS:
-v:verbose,詳細信息
圖示:
圖示:
[root@localhost Packages]# rpm -ivvh zsh-5.0.2-7.el7.x86_64.rpm
[install-options]:
-h:hash marks輸出進度條,每個#表示2%的進度
--test:測試安裝,檢查並報告依賴關係及衝突消息等
圖示
圖示
--replacepkgs:重新安裝(原有文件被修改,需刪除)
圖示:
rpm自帶腳本;
共分爲四類:--noscripts
1、preinstall:安裝過程開始之前運行的腳本,%pre , --nopre
2、postinstall:安裝過程完成之後運行的腳本,%post , --nopost
3、preuninstall:卸載過程真正開始執行之前運行的腳本,%preun, --nopreun
4、postuninstall:卸載過程完成之後運行的腳本,%postun , --nopostun
--nosignature:不檢查包簽名信息,不檢查來源合法性;
圖示:
--nodigest:不檢查包完整性信息;
圖示:
二、升級
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
upgrade:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
freeshen:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級
-U:升級或安裝;
-F:升級
rpm -Uvh PACKAGE_FILE ...
圖示:
rpm -Fvh PACKAGE_FILE ...
圖示:
--oldpackage:降級;
--force:強制升級;
注意:(1)不要對內核做升級操作:Linux支持多內核版本並存,因此,直接安裝新版本內核
(2)如果某原程序包的配置文件安裝後曾被修改過,升級時,新版本的程序提供的同一 個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名後提供
三、卸載:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
--allmatches:卸載所有匹配指定名稱的程序包的各版本
--nodeps:忽略依賴關係
--test:測試卸載,dry run模式
圖示:
四、查詢:
rpm {-q|--query} [select-options] [query-options]
[select-options]
PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其安裝版本
-a,--all:查詢所有已經安裝過的包
-f FILE:查詢指定的文件由哪個包安裝的
圖示:
-p, --package PACKAGE_FILE:用於實現對未安裝的程序包執行查詢操作
--whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供
--whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
[query-options]
--changelog:查詢rpm包的changlog
-l,--list:程序安裝生成的所有文件列表
-i,--info:程序包相關的信息,版本號、大小、所屬的包組,等
-c,--configfiles:查詢指定的程序包提供的配置文件
-R,--requlres:查詢指定的程序包的依賴關係
--provides:列出指定的程序包提供的所有的CAPABILITY
--scripts:查看程序包自帶的腳本片斷
五、校驗:
rpm {-V|--verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs MD5碼
D Device major/minor number mismatch主次號
L readLink(2) path mismatch 路徑
U User ownership differs 屬主
G Group ownership differs屬組
T mTime differs 時間
P caPabilities differ
包來源合法性驗證和完整性驗證:
來源合法性驗證:
數字簽名:
完整性驗證:
獲取並導入信任的包製作作者的密鑰:
對於CentOS發行版來說:rpm--import/etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7
驗證:
1、安裝此組織簽名的程序時,會自動執行驗證
2、手動驗證:rpm-K PACKAGE_FILE
光盤公鑰導入:
[root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-7
六、數據庫重建:
rpm管理器數據庫路徑:/var/lib/rpm/
查詢操作:通過此處的數據庫進行;
獲取幫助:
centos6:man rpm
centos7:man rpmdb
rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]
--initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前 有時不執行任何操作;
--rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進 行重新創建;