Linux rpm查询命令以及RPM包验证

在上一章咱们介绍了使用 rpm 命令安装、卸载和升级RPM软件包,在实际的操做过程当中,咱们还须要使用rpm 命令来对 RPM 软件包作一些查询操做,好比:数据库

  • 查询软件包是否已安装
  • 查询系统中全部已安装的软件包
  • 查看软件包的详细信息
  • 查询软件包的文件列表
  • 查询某系统文件具体属于哪一个 RPM 包

rpm 查询命令的格式以下:centos

$ rpm 选项 包名

1、查询软件包是否安装:-q

rpm 命令查询软件包是否安装的命令格式为:并发

$ rpm -q 包名

-q 的英文单词是 query,表示查询的意思。学习

好比我须要查看Linux 系统中是否安装sudo,则rpm 查询命令应写成:ui

$ rpm -q sudo

image

若是系统中安装了咱们要查询的软件,则书输出软件的包名信息,若是没有安装,则告诉咱们package is not installedspa

这里查询的时候,只须要咱们输入包名就能够,并不须要输入包全名,系统能够自动识别。code

2、查询系统中全部安装的软件包:-qa

使用 rpm 查询 Linux 系统中全部已安装软件包的命令格式为:blog

$ rpm -qa

image

能够看到,会把咱们系统中安装的全部的软件包输出。若是咱们想要查询某个包是否安装,可是记不全包名,那么可使用管道符查找,好比咱们要查询包含su的软件:ip

$ rpm -qa | grep su

image

执行命令以后,会把软件名包含su的软件所有列出来。rem

3、查询软件包的详细信息:-qi

使用 rpm 命令查询软件包的详细信息,命令格式以下:

$ rpm -qi sudo

好比咱们要查询sudo软件的详细信息:

image

  • Name:包名
  • Version:版本号
  • Release:发行版本
  • Install Date:安装时间
  • GroupSource RPM:组和源RPM包文件名
  • Signature:数字签名
  • Summary:软件包说明
  • Description:软件详细描述
  • PackagerURL:厂商以及地址

4、查询软件包的文件列表:-ql

在上一章学习RPM软件安装的时候有提到过,rpm 软件包一般采用默认路径安装,各安装文件会分门别类安放在指定的目录文件下。使用 rpm 命令能够查询到已安装软件包中包含的全部文件及各自安装路径,命令格式为:

$rpm -ql 包名

好比查看sudo软件包全部文件以及各自的安装位置:

image

5、查询系统文件属于哪一个RPM包:-qf

查询某系统文件所属哪一个 RPM 软件包。其命令格式以下:

$ rpm -qf 系统文件名
注意:只有使用 RPM 包安装的文件才能使用该命令,手动方式创建的文件没法使用此命令。

好比查询 ls 命令所属的软件包,能够执行以下命令:

rpm -qf /bin/ls

image

6、查询软件包的依赖关系:-qR

使用 rpm 命令安装 RPM 包,有时候咱们需考虑与其余 RPM 包的依赖关系。可使用命令来查询某已安装软件包依赖的其余包,该命令的格式为:

$ rpm -qR 包名

-R(大写)选项的含义是查询软件包的依赖性,是 requires 的首字母。

好比,查询sudo软件包的依赖性,可执行如下命令:

image

7、Linux RPM包校验和数字证书

在前面咱们执行 rpm -qa 命令的时候,能够发现Linux系统中装有大量的RPM 包,且每一个包都含有大量的安装文件。所以,为了可以及时发现文件误删、误修改文件数据、恶意篡改文件内容等问题,Linux 提供了如下两种检测方式:

  • RPM 包校验:其实就是将已安装文件和 /var/lib/rpm/目录下的数据库内容进行比较,肯定文件内容是否被修改。
  • RPM 包数字证书校验:用来校验 RPM 包自己是否被修改。
一、Linux RPM 包校验

RPM 包校验可用来判断已安装的软件包(或文件)是否被修改,此方式可以使用的命令格式分为如下 3 种。

$ rpm -Va #校验系统中已安装的全部软件包

$ rpm -V 已安装的包名 #校验指定 RPM 包中的文件

$ rpm -Vf 系统文件名 #校验某个系统文件是否被修改

二、Linux RPM数字证书验证

上述RPM包校验方法只能用来校验已安装的RPM包及其文件,若是RPM包自己就被篡改过,使用该方法就没法有效校验了,所以须要使用第二种方法: RPM 数字证书验证方法。

数字证书,又称数字签名,由软件商直接发布。Linux 系统安装数字证书后,若 RPM 包作了修改,此包携带的数字证书也会改变,将没法与系统成功匹配,软件没法安装。

使用数字证书验证RPM包:

  • 必须找到原厂的公钥文件,而后才能进行安装。
  • 安装 RPM 包会提取 RPM 包中的证书信息,而后和本机安装的原厂证书进行验证。若是验证经过,则容许安装;若是验证不经过,则不容许安装并发出警告。

数字证书默认会放到系统中/etc/pki/rpm-gpg/位置:

image

安装数字证书:

$ rpm --import RPM-GPG-KEY-centos*

数字证书安装完成后,可以使用以下命令进行验证:

$ rpm -qa|grep gpg-pubkey

image

能够看到,数字证书已成功安装。在装有数字证书的系统上安装 RPM 包时,系统会自动验证包的数字证书,验证经过则能够安装,反之将没法安装。

既然能够按照证书,一样也能卸载数字证书,由于数字证书自己也是一个RPM包,所以可使用 rpm -e 卸载:

$ rpm -e gpg-pubkey-5ba5fa8d-5ccc6012

image

相关文章
相关标签/搜索