rpm命令:

rpm:

数据库:/var/lib/rpm

rpmbuild:

安装、查询、卸载、升级、校验、数据库的重建、验正数据包等工作;


rpm命名:

包:组成部分

主包:

bind-9.7.1-1.el5.i586.rpm

子包:

bind-libs-9.7.1-1.el5.i586.rpm

bind-utils-9.7.1-1.el5.i586.rpm

包名格式:

name-version-release.arch.rpm

bind-major.minor.release-release.arch.rpm


主版本号:重大改进

次版本号:某个子功能发生重大变化

发行号:修正了部分bug,调整了一点功能


bind-9.7.1.tar.gz


rpm包:

二进制格式

rpm包作者下载源程序,编译配置完成后,制作成rpm包

bind-9.7.1-1.noarch.rpm

bind-9.7.1-1.ppc.rpm


rpm:


1、安装

rpm -i /PATH/TO/PACKAGE_FILE

-h: 以#显示进度;每个#表示2%; 

-v: 显示详细过程

-vv: 更详细的过程

rpm -ivh /PATH/TO/PACKAGE_FILE


--nodeps: 忽略依赖关系;

--replacepkgs: 重新安装,替换原有安装;

--force: 强行安装,可以实现重装或降级;

2、查询

rpm -q PACKAGE_NAME: 查询指定的包是否已经安装

rpm -qa : 查询已经安装的所有包


rpm -qi PACKAGE_NAME: 查询指定包的说明信息;

rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;

rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;

rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;


rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本

rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;

如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;

rpm -qpi /PATH/TO/PACKAGE_FILE

rpm -qpl 


3、升级

rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;

rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;

--oldpackage: 降级

4、卸载

rpm -e PACKAGE_NAME

--nodeps

5、校验

rpm -V PACKAGE_NAME

6、重建数据库

rpm 

--rebuilddb: 重建数据库,一定会重新建立;

--initdb:初始化数据库,没有才建立,有就不用建立;



7、检验来源合法性,及软件包完整性;

加密类型:

对称:加密解密使用同一个密钥

公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;

单向:


# ls /etc/pki/rpm-gpg/

RPM-GPG-KEY-redhat-release

rpm -K /PAPT/TO/PACKAGE_FILE

dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项

sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项


rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件