時間:2017.12.04
作者:李強
參考:man,info,magedu講義,萬能的internet
實驗環境:CentOS 6.9與CentOS7.4
聲明:以下英文純屬個人翻譯,英文B級,歡迎糾正,以下内容純屬個人了解,并沒有對錯,隻是參考,盜版不糾,才能有限,希望不誤人子弟為好。
1、rpm軟體包生成の檔案有:
二進制檔案
/bin/rpm
/usr/bin/rpm2cpio
/usr/bin/rpmdb
/usr/bin/rpmkeys
/usr/bin/rpmquery
/usr/bin/rpmverify
庫檔案
/usr/lib/rpm
/var/lib/rpm
配置檔案
/etc/rpm:存放rpm配置檔案目錄
幫助檔案
/usr/share/doc
/usr/share/locale
/usr/share/man
諸多檔案具體自行檢視:
rpm -qfl which rpm
2、rpm包管理器的基本原理
首先它有自己的資料庫,可以使用rpmdb或rpm --initdb和--rebuilddb
rpm會調用自己的庫檔案的工具去查詢安裝過的軟體包的頭檔案的資訊,這裡就展現rpm格式的重要性,會到指定的目錄下去查詢指定的資訊,生成資料庫。
rpm --initdb 會去生成一個新的資料庫,如果有存在的并不會覆寫。
會發現在/var/lib/rpm/下的_db.001/002/003檔案的時間戳都被覆寫了,相當于重建了。

rpm --rebuliddb的結果
rmndb的結果
我們能夠發現使用rebuilddb之後db.001的檔案都不見了。
這個時候我們隻要使用rpm執行什麼查詢什麼的操作,db資料有自動生成了。
而使用--initdb隻是建立了db.001的檔案。
由此可以看出來db.00幾的檔案是很重要的啊
我們能看到在/var/lib/rpm下的都是資料庫檔案,而且rpmdb所操作影響的檔案也是這些,是以rpm工具的資料庫檔案就是這些了。
rpm的配置檔案,我們看到都是以macros為字首的,宏指令的意思,不打開了都是一些指令也看不懂就算了:
3、rpm包管理器的基本功能
打包:
查詢:
-q:
-p: 安裝前檢視,p對應package
-f:安裝之後看,檔案由那個包提供,
校驗:
-K :安裝前檢查包的完整性和合法性
-V:安裝後檢查包生成的檔案是否有改動
安裝:
-i:
更新:
-U:有老版本更新,沒老版本安裝新版本
-F:有老版本才更新,沒有不操作
注意的是不要對核心更新。
解除安裝:
-e:
具體使用方法如下:
本文轉自 lajifeiwomoshu 51CTO部落格,原文連結:http://blog.51cto.com/lajifeiwomoshu/2046898