一:二進制應用程序組成部分
二進制文件(which command)、庫文件(ldd `which command`)、配置文件(.conf)、幫助文件(.README)等
二:rpm包文件的組成
rpm文件、rpm元數據(如名稱、依賴性關系等)、安裝或卸載時運行的腳本
三:rpm包數據庫:
1.組成部分(通過 ls /var/lib/rpm 來查看):
2.rpm數據庫的作用與常用問題:
當安裝已存在的rpm包時,系統通過數據庫中rpm包安裝記錄得知已安裝,于是會顯示安裝失敗。但當用rm刪除程序的一個相關文件時,程序有可能不能正常運行,但rpm數據庫并不會記錄,所以不會提示程序不存在。此時,當用rpm重新安裝程序時,會提示程序已存在。
四: rpm 包管理器
①安裝程序常用命令選項:rpm -ivh file.rpm
解析:-i (install) 安裝命令
-v 顯示詳細信息
-h 顯示進度條
②程序安裝和刪除常見問題(重點):
1)包的依賴性問題
我們知道,rpm包具有依賴性,這將導致某個rpm包安裝失敗,此時要用–nodeps 來忽略依賴性,強制安裝或強制刪除。例如以下httpd包的安裝過程
同理,刪除某程序時也存在包的依賴問題,這時,用rpm -e file.rpm -nodeps來解決就好了。
2)程序因缺少某文件而不能使用,需要重裝程序時,單純使用-ivh已經不能解決問題,這時應使用–replacepkgs,例如下面這種情況:
3)當安裝rpm包時發現已存在舊包,想要刪除舊包裝新包時,用-Uvh(update),如下已有aide命令老版本,想要用新版本替換時,用-Uvh
同理,有時我們想單純的為程序升級,想要在有舊包的前提下再裝新包,不存在時舊不更新,我們可以用 –Fvh
(注: 這兩種選項都會刪除舊包裝新包。)
4)但有時,我們想要保留舊包,并安裝新包,此時要用到–replacefiles,我們還拿aide命令rpm包開刀:
5)當我們安裝舊包時發現已存在新包時,想要保留新包的前提下安裝舊包時,可用–replacefiles ,但必須搭配–oldpackage,如下例子:
6)–force (包含–replacepkgs, –replacefiles, –oldpackage的功能),常用于在不刪除舊包的前提下,新包的安裝。
7)當安裝rpm文件時,系統會提示公鑰未導入,此時我們可以通過以下兩種方式來解決
方法1: –nosignature: 不檢查來源合法
方法2:當然,第一種方法顯然是一種不安全的做法,此時,我們使用–import GPG-KEY….來導入公鑰,操作過程如下
第一步:查詢當前系統所有已導入的公鑰:rpm -qa “gpg-pubkey*”
第二步:如未導入則導入公鑰:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-(6/7)
第三步:安裝rpm包,此時發現已經不會顯示警告
④包的查詢:
-qa command 查看程序的所有rpm包 —————(常用)




原創文章,作者:yunyunyu,如若轉載,請注明出處:http://www.www58058.com/84648