1.什么是RPM
RPM Package Manager(RPM)是一个开放式的包管理系统,它既可以运行于RHEL系统,也可以运行于其他Linux或Unix系统。1.1 RPM包的命名方式一般为: zip-3.0-1.el6.i686.rpm package name zip version 3.0 release 1 major version el6 CPU architecture i6862.安装,升级,刷新和卸载 rpm {-i|--install} [install-options] PACKAGE_FILE ... 安装一个包 rpm {-U|--upgrade} [install-options] PACKAGE_FILE ... 升级一个包到最新的版本,或者安装一个包 rpm {-F|--freshen} [install-options] PACKAGE_FILE ... 刷新一个包到最新版本,同-U,但包必须先被安装在系统上才会执行 rpm -Fvh *.rpm 升级所有已经安装的包2.1 安装时加入-v可以获得更多信息,加入-h使用哈希符号显示进度表,所以它们组合起来是这样的
[root@localhost ~]# rpm -Uvh createrepo-0.9.9-18.el6.noarch.rpm
warning: createrepo-0.9.9-18.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEYPreparing... ########################################### [100%] 1:createrepo ########################################### [100%] notice:Linux提供了两个可以安装包的选项(-U & -i),-U选项包含了安装和升级,所以推荐使用-U选项,但在安装内核时,请使用-i选项,因为-U升级完成后会删除旧内核,如果升级完成之后的内核无法使用则会造成系统故障未解决的依赖关系 RPM安装包有时会依赖于其它安装包,这时需要被依赖包安装才能正确运行列如:
[root@localhost ~]# rpm -Uvh nginx-1.0.15-12.el6.i686.rpm
warning: nginx-1.0.15-12.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEYerror: Failed dependencies: GeoIP is needed by nginx-1.0.15-12.el6.i686 gd is needed by nginx-1.0.15-12.el6.i686 libGeoIP.so.1 is needed by nginx-1.0.15-12.el6.i686 libgd.so.2 is needed by nginx-1.0.15-12.el6.i686 nginx-filesystem is needed by nginx-1.0.15-12.el6.i686 nginx-filesystem = 1.0.15-12.el6 is needed by nginx-1.0.15-12.el6.i686notice:如果想nginx包安装,这时有两个方法:
方法1: 安装对应的RPM包,解决依赖关系 方法2: 使用--nodeps选项忽略依赖关系(虽然可以安装,但可能导致程序运行不正常) rpm -Uvh --nodeps nginx-1.0.15-12.el6.i686.rpm配置文件被更改 当您升级一个包时,可能会出现一下的信息, saving /etc/ntp.conf as /etc/ntp.conf.rpmsave 这是因为您对旧版本程序配置文件修改不能被新版本兼容,因此RPM保存了之前修改的文件,并 安装了一个新的2.2 卸载 rpm -e nginx #卸载时使用包名,而不是包的全部名称3.查询,校验及RPM数据库管理 rpm {-q|--query} [select-options] [query-options] -q <Package_Name> 对某包进行查询 -p <Package_Name> 对未安装的包进行查询 -a 在所有已被安装的包中查询 -f <File_Name> 查询文件被哪个包拥有 下列选项用于选择指定查询哪些信息 -i 显示某包的详细信息 -l 显示某包中的所有文件 -d 显示某包的说明文档 -c 显示某包的配置文件例: rpm -qpi <Package_File> 查询一个尚未安装包的详细信息 rpm -ql <Package_Name> 查询某个已被安装包生成的文件列表3.1 校验 rpm -V <package_name> 用于检查安装生成的文件属性是否发生变化,主要描述有 5 MD5检查 S 文件大小 L 符号链接 T 文件修改时间 D 设备 U 用户 G 组 M 权限 ? 不可理解文件(文件权限错误) . 没有发生改变 3.2 检查包的数字签名 校验RPM包必须先要导入GunPG key [root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-6 显示所有已经导入的GunPG key [root@localhost ~]# rpm -qa gpg-pubkey* gpg-pubkey-c105b9de-4e0fd3a3 想要显示key的详细信息 [root@localhost ~]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3 对包进行数字签名检查 [root@localhost Packages]# rpm -K zip-3.0-1.el6.i686.rpm zip-3.0-1.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK3.3 RPM数据库管理
RPM所有查询功能都是基于数据库的 #数据库目录为/var/lib/rpm
rpm --initdb #初始化,如果没有则新建,有则不执行 rpm --rebuilddb #数据库重建,覆盖原有
参考文档:
Red_Hat_Enterprise_Linux-6-Deployment_Guide-en-US