如何进行rpm程序包管理功能解析

Rpm包管理功能全解

软件包管理的功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装、升级、卸载、查询、校验、数据库维护。

下面我们来看看RPM包管理的解析

Rpm包在redhat和S.U.S.E中有很大的应用

我们接下来就以centos系统中rpm包的管理做一些详细的功能解析

使用yum(rhel系列)安装时可以自动解决依赖关系d

rpm包命名格式:

name-VERSION-release.arch.rpm

VERSION:major.minor.release

Major:主版本号(版本有大的更新); minor:次版本号(小更新)

release.arch:rpm包的发行号

release.os: 2.el7(平台).i386(架构).rpm archetecture(架构):i386, x64(amd64), ppc, noarch理器;

实际操作:

本机在服务器上已经成功下载zsh-4.3.10-9.el6.x86_64.rpm用此来实施

语法rpm [options] [packages_file]

安装;-i,--install

rpm -ivh /path/to/rpm_package

-v;显示安装信息

-vv;显示更详细的安装信息

-h;以井号显示安装进度

--nodeps;忽略依赖关系(适用于卸载)

--force;强行安装(适用于卸载)

如何进行rpm程序包管理功能解析

重装;--replacepkgs会覆盖原有信息

Rpm -i --replacepkgs /path/to/rpm_name

[root@bucktan ~]# rpm -ivh --replacepkgs zsh-4.3.10-9.el6.x86_64.rpm

卸载;-e,--erase

rmp -e package_name

--allmatches卸载匹配所有指定名称的软件包

--nodeps忽略依赖关系

--test 测试卸载

如何进行rpm程序包管理功能解析

升级;-U -F

升级或安装;

rpm -U /path/to/rpm_package

--oldpackage降级

在服务器上取了两个包:zabbix-2.4.0-1.el6.x86_64.rpm

zabbix-2.4.5-1.el6.x86_64.rpm

如何进行rpm程序包管理功能解析

之前升级至zabbix-2.4.5-1.el6.x86_64.rpm

[root@bucktan]~# rpm -Uvh --oldpackage zabbix-2.4.0-1.el6.x86_64.rpm

只升级;(若不存在旧版本则不会执行)

rpm -F /path/to/rpm_package

通常搭配vh使用;

rpm -Uvh|-Fvh /path/to/package

--nosignature 不检查包签名信息的合法性

注意;不要对内核执行升级操作

不同内核版本可以共存,因此可执行安装操作,但不建议升级

(重点) 查询rpm {-q|--query} [select-options] [query-options]

查询包是否已安装;

rpm -q package_name

[select-options]:

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

rpm -qf /path/to/file查询某文件是由那个包生成的;

-q --whatprovides file_name 查询指定的capability由哪个程序包所提供

-q --whatrequires file_name 查询指定的capability由哪个程序包所依赖

如何进行rpm程序包管理功能解析

[query-options]:

rpm -ql package_name查询包安装后生成的文件;

如何进行rpm程序包管理功能解析

rpm -qi package_name查询包的简要说明;

如何进行rpm程序包管理功能解析

rpm -qd package_name查询包安装后生成的帮助文档;

如何进行rpm程序包管理功能解析

rpm -qc package_name查询包安装后生成的配置文件;

rpm -qR package_name 查询指定软件包的依赖关系

rpm -q --scripts 查询包相关的脚本;

脚本分四类

preinstall 安装前脚本

postinstall 安装后脚本

preuninstall 卸载前脚本

postuninstall 卸载后脚本

查询未安装包的相关信息;-qp

rpm -qpl package_file 查询安装后会生成的的文件

rpm -qpi package_file查询包的简单描述信息;

可搭配其选项使用,如-qp --scripts

校验;检查安装后的文件是否被修改过

rpm -V package_name

[root@bucktan ~]# rpm -V zsh

S.5....T. c /etc/zshrc

返回的注释信息;

S file Size differs 大小

M Mode differs (includes permissions and file type) 头文件

5 digest (formerly MD5 sum) differs MD5

D Device major/minor number mismatch

L readLink(2) path mismatch

U User ownership differs 属主

G Group ownership differs 属组

T mTime differs 修改时间

P caPabilities differ 能力改变了

校验来源合法性和软件的完整性

包完整性;单项加密机制(MD5|sha1..)

来源合法性;公钥加密机制(RSA)

rpm -K /path/to/packagefile直接检验程序包来源合法性

rpm --checksig /path/to/package_file

--nosigeature:不检查来源合法性

--nodigest:校验时不检查包完整性

导入GPG密钥文件:

rpm --import /path/to/gpg-key-file

导入以后再做验证

如何进行rpm程序包管理功能解析

数据库

位置:/var/lib/rpm

重建:

rpm --initdb:初始化

如果事先不存在一个数据库,则新建之

rpm --rebuilddb 重建

直接新建数据库,会覆盖原有库

如何进行rpm程序包管理功能解析

以上就是如何进行rpm程序包管理功能解析的详细内容,更多请关注其它相关文章!