rpm 包詳解
程序包的命名格式:name-VERSION.tar.gz
拆包:主包和分包
主包:name-VERSION-release.arch.rpm
支包:name-function-VERSION-release.arch.rpm
注意:程序包之間有時會存在依賴關系,依靠前端工具解決依賴關系
yum |
Rhel系列系統上的rpm包管理工具 |
apt-get |
debian/ubuntu包管理前端工具 |
zipper |
suse的rpm包管理工具 |
dnf |
Fedora 22+系統上的rpm包管理前端工具 |
程序包管理器:位置/var/lib/rpm/
rpm命令:rpm[OPTION]+PACKETFILE
*安裝:-i/–install
*升級:-U/–update,
-F/–freshen
*卸載:-e/–erase
*查詢:-q/–query
*校驗:-V/–verify
*數據庫維護:–builddb,–initdb
rpm安裝
rpm
{-i|–install} [install-options] PACKAGE_FILE …
rpm -ivh +PACKETFILE
-ivh:i是安裝;v是顯示詳細信息(vv)更詳細的輸出;h輸出進度條,每個#表示2%進度
–test:測試安裝,檢查并報告依賴關系及沖突消息等
–nodeps:忽略依賴關系;(不建議)
–replacepkgs:重新安裝
注意:rpm包可以自帶腳本
perinstall |
安裝過程開始之前運行的腳本 |
%pre |
postinstall |
安裝過程完成之后運行的腳本 |
%post |
preuninstall |
卸載過程真正開始執行之前運行的腳本 |
%pre |
postuninstall |
卸載過程完成之后運行的腳本 |
%postun |
rpm升級:
rpm {-U|–upgrade} [install-options]
PACKAGE_FILE …
rpm {-F|–freshen} [install-options]
PACKAGE_FILE …
-U存在舊包,想刪除舊包安裝新包就用-Uvh
-F在舊包的基礎上升級,就用-Fvh
rpm降級:–oldpackage
注意:1、不要對內核做升級,Linux支持多內核版本并存,因此,直接安裝新版本內核
2、如果某原程序包的配置文件安裝后曾被修改過,升級時,新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供
rpm卸載
rpm -e PACKGE_NAME..
–allmatches 卸載所有匹配指定名稱的程序包的各種版本
–nodeps 忽略依賴關系
–test 測試卸載
rpm查詢
rpm +OPTION +PACKGE_NAME
-qa 查詢所有安裝的包
-qf 查詢所有已經安裝過的包
-qp 用于實現對未安裝程序包的查詢
-ql 查詢程序安裝生成的多有文件列表
-qi 查詢軟件包的詳細信息
-qc 查詢指定的程序包提供的配置文件
-qd 查詢指定的程序包提供的文檔
-q
–provides 列出指定的程序包提供的所有的CAPABILITY
-qR 查詢指定的程序包的依賴關系
rpm校驗
rpm
-V +PACKAGE_NAME
如未導入則導入公鑰:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-(6/7)
數據庫的重建
rpm {–initdb|–rebuilddb}
[–dbpath DIRECTORY] [–root DIRECTORY]
–initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作;
–rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建;
原創文章,作者:N27_flypig,如若轉載,請注明出處:http://www.www58058.com/84871