rpm详细解释


rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。

软件包的组成部分:

二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

库文件:/lib, /usr/lib, /usr/local/lib

配置文件:/etc

帮助文件:手册, README, INSTALL (/usr/share/doc/)

RPM: RPM is Package Manager

源程序:name-version.tar.{gz|bz2|xz}

版本号:major.minor.release

bash-4.3.1.tar.xz

包名-主版本号-次版本号-发行号

 

rpm包:name-version-release.arch.rpm(有源程序的rpm包和二进制的rpm包)

Rpm包的发行号(release):跟源程序不同,用于标识rpm包本身的发行号,同时包含所适用的操作系统

el6: rhel6

CentOS6:

el5

suse11

arch: 主机平台

cpu架构:i686、x86_64、amd64、ppc、noarch。。。

bash-4.3.2-5.el6.x86_64.rpm

包名-主版本号.次版本号.源程序发行号-rpm包的发行号.主机平台.cup架构

 

Rpm包有主包和分包之分

Bind 单个包

bind-devel 主包--分包

 

rpm包有验正机制:来源的合法性、软件包的完整性。必须导入了官方提供的公钥,才可以验证。

Linux系统自带的公钥一般放在/etc/pki/rpm-gpg/下,后缀为release的就是公钥,没有这个公钥,那个后缀为系统名加版本号的就是公钥了。

验证rpm合法性和完整性的命令:

rpm

-K

--checksig 与-K用法相同

--nosignature 不检测合法性

--nodigest 不检测完整性

 

Rpm包的安装:

rpm -i /PATH/TO/RPM_FILE

-i|--install

-v, -vv, -vvv越多越详细

-h: 以#显示安装进度,一个#表示2%的进度;

-ivh 组合写法

 

忽略依赖关系:

--nodeps

 

测试安装:

--test

 

重新安装:

--replacepkgs

 

warning: /etc/sysconfig/named created as /etc/sysconfig/named.rpmnew(安装的时候不会覆盖,创建了一个新的文件)

 

卸载:rpm -e 包名

--nodeps

 

warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave(删除时保留副本)

查询:rpm -q|--query 包名

 

查询所有已经安装包:

rpm -qa

rpm -qa | grep 'pattern'

 

查询包的摘要信息:

rpm -qi 包名

 

查询包安装生成的文件清单:

rpm -ql 包名

 

查询包安装生成的配置文件:

rpm -qc 包名

 

查询包安装生成的帮助文档:

rpm -qd 包名

 

查询包相关的脚本:

rpm -q --scripts 包名

 

查询文件是哪个包安装生成的

rpm -qf /path

preinstall: 安装前脚本

postinstall: 安装后脚本

preuninstall: 卸载前脚本

postuninstall: 卸载后脚本

 

查询尚未安装的包的相关信息:与查看安装包信息相似。

rpm -qpi /path/to/rpm_file

-i

-l

-d

-c

--scripts

 

升级:

-U: 升级+安装

-F:升级

-Uvh

-Fvh

--force 强制升级

--nodeps 忽略依赖关系

 

注意:内核不应该升级,应该尽可能安装,它允许多版本并存;

 

校验包的内容是否改变:rpm -V 包名

rpm -K 校验包的完整性合法性

 

rpm包的数据库:

/var/lib/rpm

 

数据库重建:

--initdb: 新建

--rebuilddb: 重建 

 

源码格式的rpm包:

打包过程是根据spec文件来完成的,spec文件打包的时候所依赖的源程序包以及补丁都提供出来,只不过没有提供二进制格式,我们要做的只是使用命令将源码格式的rpm包制作成rpm包就可以实现安装。

制作自己的rpm包 

Linux 下rpm安装后的目录结构和一些配置

rpm与yum的综合性介绍与示例演示

Redhat Linux---rpm 命令详解

相关内容