天天看点

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