rpm是一個功能十分強大的軟件包管理系統,它使得在Linux下安裝、升級和刪除軟件包的工作變的容易、並且具有查詢、驗證軟件包的功能。
1)安裝選項
命令格式:rpm {-i|--install} [install-options] PACKAGE_FILE ...
詳細選項
-h (or -hash)安裝時輸出hash記號(#)
--test 只對安裝進行測試,並不實際安裝
--percent 以百分比的形式輸出安裝的進度
--nodeps:忽略依賴關系
--replacepkgs:重新安裝
--nosignature:不檢查來源合法性
--noscipts:不執行程序包腳本片段;
%pre:安裝前腳本:--nopre
$post:安裝后腳本; --nopost
%preun:卸載前腳本; --nopreun
%postun:卸載后腳本; --nopostun
普通選項
-v:顯示附加信息
--vv:顯示更加詳細的信息
2)升級
命令格式:rpm {-U|--upgrade}[install-options]PACKAGE_FILE...
rpm {-F|--freshen}[install-options]PACKAGE_FILE...
upgrade:安裝有舊版程序包,則升級,如果不存在舊版本的程序包,則安裝;
freeshen:安裝有舊版程序包,則升級,如果不存在舊版本程序包,則不執行升級操作;
rpm -Uvh PACHAGE_FILE ...
rpm Fvh PACHAGE_FILE ...
--oldpackage:降級
--force:強行升級
注意:(1)不要對內核升級操作:Linux支持多內核版本並存,因此,對直接安裝新版本內核;
(2)如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的通一個配置文件並不會直接覆蓋老版本的配置文件,而被新版本文件重命名(FILENAME.rpmnew)后保留;
3)查詢
命令格式: rpm {-q|--query} [select-options] [query-options]
-a:所有包;
-f:查看指定的文件由那個程序包安裝生成
-p /PATH/TO/PACKAGE_FILE:針對尚未安裝的程序包做查詢操作;
--whatprovides CAPABILITY:查詢指定CAPABILITY由那個包提供;
--whatrequies CAPABILITY:查詢指定CAPILITY被那個包所依賴;
詳細選項
--changelog:查詢rpm包的changlog
-c:查詢程序的配置文件
-i:infornation
-l:查看指定程序包安裝后生成的指定文件
--scripts:程序包自帶腳本片段
-R:查詢指定的程序包所依賴的CAPABILITY;
--provides:列出指定程序包所提供的CAPABILITY;
用法
-qi PACKAGE,-qf FILE,-qc PACKAGE,-qd PACKAGE
-qpi PACKAGE_FILE,-qpl PACHAGE_FILE,...
-qa
4)卸載
命令格式:rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ...
參數
pkg1 ... pkgN :要刪除的軟件包
詳細選項
--test 只執行刪除測試
--noscripts 不運行預安裝和后安裝腳本程序
--nodeps 不檢查依賴性
5)校驗已安裝的軟件包
命令格式:
rpm {-V|--verify} [select-options] [verify-options]
參數
pkg1 ... pkgN 將要校驗的軟件包名
軟件包選項
-p Verify against package file
-f 校驗所屬的軟件包
-a Verify 校驗所有的軟件包
-g 校驗所有屬於組的軟件包
詳細選項
--noscripts 不運行校驗腳本
--nodeps 不校驗依賴性
--nofiles 不校驗文件屬性
例子
[root@qingcheng-db lgp]# rpm -ivh htop-2.0.2-1.el7.x86_64.rpm //安裝包,並顯示詳細進度
警告:htop-2.0.2-1.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID 352c64e5: NOKEY
准備中... ################################# [100%]
正在升級/安裝...
1:htop-2.0.2-1.el7 ################################# [100%]
[root@qingcheng-db lgp]# rpm -i ftp://ftp.xxx.xxx //在線安裝
[root@qingcheng-db lgp]# rpm -Va //校驗所有的rpm包,查找丟失的文件
遺漏 c /etc/yum.repos.d/CentOS-Base.repo
遺漏 c /etc/yum.repos.d/CentOS-CR.repo
遺漏 c /etc/yum.repos.d/CentOS-Debuginfo.repo
遺漏 c /etc/yum.repos.d/CentOS-Media.repo
遺漏 c /etc/yum.repos.d/CentOS-Sources.repo
遺漏 c /etc/yum.repos.d/CentOS-Vault.repo
遺漏 c /etc/yum.repos.d/CentOS-fasttrack.repo
[root@qingcheng-db lgp]# rpm -qf /usr/bin/htop //查找一個文件屬於哪個包
htop-2.0.2-1.el7.x86_64
[root@qingcheng-db lgp]# rpm -qpi htop-2.0.2-1.el7.x86_64.rpm //查詢rpm包的描述信息
[root@qingcheng-db lgp]# rpm -qpl htop-2.0.2-1.el7.x86_64.rpm //列出rpm包的文件信息
警告:htop-2.0.2-1.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID 352c64e5: NOKEY
/usr/bin/htop
/usr/share/doc/htop-2.0.2
/usr/share/doc/htop-2.0.2/AUTHORS
/usr/share/doc/htop-2.0.2/COPYING
/usr/share/doc/htop-2.0.2/ChangeLog
/usr/share/doc/htop-2.0.2/README
/usr/share/man/man1/htop.1.gz
/usr/share/pixmaps/htop.png
[root@qingcheng-db lgp]# rpm -Uvh htop-2.0.2-1.el7.x86_64.rpm //升級包
[root@qingcheng-db lgp]# rpm -q htop //查看htop的安裝包
htop-2.0.2-1.el7.x86_64
[root@qingcheng-db lgp]# rpm -e htop //移除安裝包
[root@qingcheng-db lgp]# rpm -qi htop //得到安裝包的信息
[root@qingcheng-db lgp]# rpm -ql htop //列出http中有那些文件
[root@qingcheng-db lgp]# rpm -qa //列出所有已安裝的包
yum
用於添加/刪除/更新rpm包,自動解決包的依賴問題以及系統更新升級
參數
-e 靜默執行
-t 忽略錯誤
-R[分鍾]設置等待時間
-y 自動應答 yes
--skip-broken忽略依賴問題
--nogpgcheck 忽略GPG驗證
check-update 檢查可更新的包
clean all清楚全部
clean packages 清楚臨時包文件 (/var/cache/yum 下文件)
clean headers 清除rpm頭文件
deplist 列出包的依賴
list 可安裝和可更新的RPM包
list installed 已安裝的包
list extras 已安裝且不在資源庫的包
info 可安裝和可更新的RPM包信息
info installed 已安裝包的信息(-qa參數相似)
install[RPM包]安裝包
localinstall 安裝本地的RPM包
update [RPM包]更新包
upgrate 升級系統
search [關鍵詞]搜索包
provides[關鍵詞]搜索特定包文件名
resinstall [RPM包]更新安裝包
repolist 顯示資源庫的配置
resolvedep指定依賴
remove[RPM包]卸載包
例子
安裝
[root@qingcheng-db ~]# yum install php //安裝PHP
[root@qingcheng-db ~]# yum groupinstall "MySQL Server" //安裝mysql數據組
更新和升級
[root@qingcheng-db ~]# yum update //全部更新
[root@qingcheng-db ~]# yum update php //更新PHP
[root@qingcheng-db ~]# yum check-update //檢查可更新的程序
[root@qingcheng-db ~]# yum upgrade php //升級php
[root@qingcheng-db ~]# yum groupupdate "MySQL Server" //升級mysql服務組
查找和顯示
[root@qingcheng-db ~]# yum info php //查看php的安裝信息
[root@qingcheng-db ~]# yum list //列出所有可用安裝程序包
[root@qingcheng-db ~]# yum list php //列出所有php的程序包
[root@qingcheng-db ~]# yum groupinfo "MySQL Server" // 查看mysql服務組的,相關安裝包
[root@qingcheng-db ~]# yum deplist php //查看php依賴情況
[root@qingcheng-db ~]# yum search iftop //搜索安裝包
[root@qingcheng-db ~]# yum history //查看歷史記錄
[root@qingcheng-db ~]# yum provides */vim //查看命令的生成包
刪除
[root@qingcheng-db ~]# yum remove php //刪除php
[root@qingcheng-db ~]# yum groupremove "MySQL Server" //刪除mysql服務組
清除緩存
[root@qingcheng-db ~]# yum clean packages //清除緩存目錄下的軟件包
[root@qingcheng-db ~]# yum clean headers //清除緩存目錄下的headers
[root@qingcheng-db ~]# yum clean oldheaders //清除緩存目錄下舊的headers
[root@qingcheng-db ~]# yum clean,yum clean all //清除所有