Linux系統下軟件包管理命令之rpm
一、RPM的全名為“RedHat Package Manager”,是由RedHat公司開發的。Rpm是以一種數據庫記錄的方式將所需要的套件安裝到linux主機的一套管理程序
RPM主要優點:
⑴、由於已經編譯完成並且打包,所以安裝方便
⑵、由於套件信息已經記錄在linux主機的數據庫中,方便查詢、升級、卸載。
RPM數據庫在/var/lib/rpm
RPM數據庫的建立可以利用rpm --rebuilddb命令。
RPM包名格式:
name-version-release.arch.rpm
name-version-release-release.arch.rpm
version:主版本號.此版本號.發行版本號.平台.rpm
主版本號改變:重大改進
次版本號改變:某個子功能發生重大變化
發行號:修正了部分bug,調整了一點功能
二、Rpm命令的詳細用法
⑴、RPM軟件安裝命令:
rpm -i /PATH/TO/PACKAGE_FILE:安裝軟件包
rpm -h :以#顯示安裝進度,每個#表示2%
rpm -v :顯示安裝詳細信息
rpm -vv :更詳細的信息
rpm -ivh :一般都是組合使用
rpm --nodeps:忽略依賴關系。
rpm --replacepkgs|repackage:重新安裝、替換原來安裝。
rpm -ivh --oldpackage:降級安裝。
rpm -ivh --force:強行安裝,可以實現重裝或降級
rpm --test:僅測試有沒有依賴關系
⑵、 rpm軟件查詢命令:
rpm -q PACKAGE_NAME:查詢指定的包是否安裝
rpm -qa :查詢以安裝的所有包
rpm -qi PACKAGE_NAME:查詢指定包的說明信息
rpm -ql PACKAGE_NAME:查詢指定包安裝後生成的文件列表
rpm -qc PACKAGE_NAME:查詢指定包安裝的配置文件
rpm -qd PACKAGE_NAME:查詢指定包安裝的幫助文件
rpm -q --scripts PACKAGE_NAME:查詢指定包中包含的腳本
rpm -qf /path/to/somefile:查詢指定的文件時由那個rpm包安裝生成的
如果某個rpm包尚未安裝,我們需要查詢其說明信息,安裝後會生成的文件
rpm -qpi /PATH/TO/PACKAGE_FILE
i:軟件說明信息
rpm -qpl /PATH/TO/PACKAGE_FILE
l:軟件安裝生成文件列表
⑶、rpm軟件升級命令:
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的,則升級;否則,則安裝
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的,則升級;否則,則退出
rpm -Uvh --oldpackage 低版本的包:降級
⑷、rpm軟件卸載命令:
卸載的時候此包不能被其他軟件包依賴
rpm -e PACKAGE_NAME
rpm --nodeps:忽略依賴,可能會造成其他依賴此包的軟件無法正常運行。
⑸、rpm軟件校驗命令:
rpm -V PACKAGE_NAME:無輸出信息就是正常。
Fh:在zsh安裝以後修改一下配置文件
⑹、rpm重建數據庫:
數據庫位置:/var/lib/rpm
rpm --rebuilddb:重建數據庫,一定會重新建立。
rpm --initdb:初始化數據庫,沒有才建立,有就不用建立。
⑺、檢驗來源合法性及軟件完整性:
紅帽公鑰:ls /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:導入秘鑰文件
rpm -K /PATH/TO/PACKAGE_FILE
dsa,gpg:驗證來源合法性,也即驗證簽名;可以使用--nosignature,略過此項
sha1,md5:驗證軟件包完整性;可以使用--nodigest,略過此項
rpm -K --nodigest /PACKAGE_NAME:只驗證簽名。
Fg:檢驗zsh文件包的完整性