CentOS的rpm软件管理器

2017-06-11  本文已影响0人  guo的学习笔记

1. RPM

1.1 RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

1.2 rpm安装

安装的rpm软件包主要参数

[root@centos7.3 ~]#rpm -ivh /mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm    #安装软件包,在选项的后面跟上要安装的软件的路径
Preparing...                          ################################# [100%]  #这一行表示安装准备完成
Updating / installing...
   1:tree-1.6.0-10.el7                ################################# [100%]  #tree-1.6.0-10.el7这个软件包安装完成

安装升级卸载中会用到的一些参数

1.2升级降级rpm软件包

[root@centos7.3 Packages]#rpm -qa rpm 
rpm-4.8.0-55.el6.x86_64   #rpm软件的版本

[root@centos7.3 Packages]#rpm -Uvh rpm-4.11.3-21.el7.x86_64.rpm  #升级rpm软件
warning: rpm-4.11.3-21.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:  #提示有依赖关系无法升级
    libdb-5.3.so()(64bit) is needed by rpm-4.11.3-21.el7.x86_64
    liblzma.so.5()(64bit) is needed by rpm-4.11.3-21.el7.x86_64
    librpm.so.3()(64bit) is needed by rpm-4.11.3-21.el7.x86_64
    librpmio.so.3()(64bit) is needed by rpm-4.11.3-21.el7.x86_64
    rpm = 4.8.0-55.el6 is needed by (installed) rpm-libs-4.8.0-55.el6.x86_64
    rpm = 4.8.0-55.el6 is needed by (installed) rpm-python-4.8.0-55.el6.x86_64
    
[root@centos7.3 Packages]#rpm -Uvh rpm-4.11.3-21.el7.x86_64.rpm --nodeps #用nodeps参数忽略依赖关系
warning: rpm-4.11.3-21.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                ########################################### [100%]
   1:rpm                    ########################################### [100%] 
   #升级成功
[root@centos7.3 ~]#rpm -qa rpm #查看rpm版本
rpm-4.11.3-21.el7.x86_64 现在的版本是4.11了

注:如果旧程序的配置文件安装后曾被修改,升级时新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名“filename.rpmnew”后保留

1.3 rpm软件包的卸载

[root@centos7.3 Packages]#rpm -evh tree #卸载tree软件
Preparing...                          ################################# [100%]
Cleaning up / removing...
   1:tree-1.6.0-10.el7                ################################# [100%]  #卸载成功

1.4 rpm软件包的查询

q选项可以查询rpm软件包的信息

下面是q选项的一些参数

[root@centos7.3 ~]#rpm -qa rpm  #查询rpm来自那个包
rpm-4.11.3-21.el7.x86_64 

1.5 rpm软件包校验

rpm -V或--verify 可以验证软件包文件有没有被修改过

[root@centos7.3 bin]#rpm -V rpm
S.5....T.    /bin/rpm #前面显示的几个字符表示修改的项,没有修改不显示

rpm - K或checksig 检查包的完整性和签名

[root@centos7.3 Packages]#rpm -checksig rpm-4.11.3-21.el7.x86_64.rpm   #查询rpm软件包的完整性和签名
rpm-4.11.3-21.el7.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#f4a80eb5)  #这里显示NOT OK,有问题

上面的问题不是软件包有问题,而是系统默认没有导入密钥,所以检查结果是not ok。下面我们导入密钥,在系统安装是安装程序会把密钥放在/etc/pkirpm-gpg/目录下,密钥的文件名是RPM-GPG-KEY-CentOS-7。

[root@centos7.3 Packages]#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #导入密钥
[root@centos7.3 Packages]#rpm -K rpm-4.11.3-21.el7.x86_64.rpm  #我们再来检查一下rpm软件包
rpm-4.11.3-21.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK #这里的检查结果是ok,没有问题

那密钥可以导入,也就可以卸载

[root@centos7.3 Packages]#rpm -qa "gpg-pubkey*" #用这条命令来查找密钥导入之后的名字
gpg-pubkey-f4a80eb5-53a7ff4b    #密钥名
[root@centos7.3 Packages]#rpm -e gpg-pubkey-f4a80eb5-53a7ff4b #卸载密钥

1.6 rpm的数据库

  1. rpm的数据库放在/var/lib/rpm目录下
  2. 创建rpm数据库

2.1 initdb:如果事先不存在数据库,则新建一个,
否则,不执行任何操作

2.2 rebuilddb:重建已安装的包头的数据库索引目录

上一篇下一篇

猜你喜欢

热点阅读