天天看點

rpm包管理器_學習筆記

時間: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包管理器_學習筆記

rpm --rebuliddb的結果

rpm包管理器_學習筆記

rmndb的結果

rpm包管理器_學習筆記
rpm包管理器_學習筆記
rpm包管理器_學習筆記

我們能夠發現使用rebuilddb之後db.001的檔案都不見了。

這個時候我們隻要使用rpm執行什麼查詢什麼的操作,db資料有自動生成了。

rpm包管理器_學習筆記

而使用--initdb隻是建立了db.001的檔案。

由此可以看出來db.00幾的檔案是很重要的啊

我們能看到在/var/lib/rpm下的都是資料庫檔案,而且rpmdb所操作影響的檔案也是這些,是以rpm工具的資料庫檔案就是這些了。

rpm包管理器_學習筆記

rpm的配置檔案,我們看到都是以macros為字首的,宏指令的意思,不打開了都是一些指令也看不懂就算了:

rpm包管理器_學習筆記
rpm包管理器_學習筆記

3、rpm包管理器的基本功能

打包:

查詢:

-q:

-p: 安裝前檢視,p對應package

-f:安裝之後看,檔案由那個包提供,

校驗:

-K :安裝前檢查包的完整性和合法性

-V:安裝後檢查包生成的檔案是否有改動

安裝:

-i:

更新:

-U:有老版本更新,沒老版本安裝新版本

-F:有老版本才更新,沒有不操作

注意的是不要對核心更新。

解除安裝:

-e:

具體使用方法如下:

rpm包管理器_學習筆記
rpm包管理器_學習筆記

本文轉自 lajifeiwomoshu 51CTO部落格,原文連結:http://blog.51cto.com/lajifeiwomoshu/2046898