当前位置: 首页 > Linux

Linuxrpm查询命令与RPM包验证

时间:2023-04-06 18:56:23 Linux

上一章我们介绍了使用rpm命令安装、卸载、升级RPM软件包。在实际操作过程中,我们还需要使用rpm命令来进行一些RPM包的查询操作,比如:查询软件包是否安装查询系统中所有已安装的软件包查询软件包的详细信息查询文件软件包列表查询某个系统文件属于哪个rpm包。rpm查询命令格式如下:$rpmOption包名1.查询包是否安装:-q使用rpm命令查询包是否安装。命令格式为:$rpm-q包名-q的英文单词是query,意思是查询。比如我需要查看linux系统是否安装了sudo,rpm查询命令应该写成:$rpm-qsudo如果系统安装了我们要查询的软件,本书会输出包软件的名称信息,如果没有安装,告诉我们包没有安装。这里查询的时候我们只需要输入包名,不需要输入包的全名,系统可以自动识别。2、查询系统中所有已安装的软件包:-qa使用rpm查询Linux系统中所有已安装的软件包。命令格式为:$rpm-qa可以看到会输出我们系统安装的所有软件包。如果我们想查看某个包是否安装了,但是又记不住完整的包名,可以使用管道符来搜索,比如我们要查看包含su的软件:$rpm-qa|grepsu执行命令后,软件名称中会包含su的所有软件都列出来了。3、查询软件包的详细信息:-qi使用rpm命令查询软件包的详细信息。命令格式如下:$rpm-qisudo比如我们要查询sudo软件的详细信息:Name:包名Version:版本号Release:发布版本InstallDate:安装时间Group,SourceRPM:组和源RPM包文件名签名:数字签名概要:包描述描述:软件Packager的详细描述,URL:厂商和地址4.查询包的文件列表:-上一章学习RPM软件安装时提到的ql,rpm软件包通常使用默认路径安装,每个安装文件都会按类放置在指定目录文件中。使用rpm命令查询已安装软件包中包含的所有文件及其各自的安装路径。命令格式为:$rpm-ql包名例如查看sudo软件包的所有文件及其各自的安装位置:5.查询系统文件属于哪个rpm包:-qf查询一个系统文件属于哪个rpm包到。命令格式如下:$rpm-qf系统文件名注意:只有用RPM包安装的文件才能使用该命令,手动创建的文件不能使用该命令。例如查询ls命令所属的软件包,可以执行如下命令:rpm-qf/bin/ls6.查询软件包的依赖关系:-qR使用rpm命令安装RPM包.有时我们需要考虑与其他RPM包的依赖关系。您可以使用该命令查询已安装软件包所依赖的其他软件包。命令格式为:$rpm-qR包名-R(大写)选项表示查询软件包的依赖关系,为requires的首字母。例如查询sudo软件包的依赖关系,可以执行如下命令:7.LinuxRPM包验证和数字证书当我们执行rpm-qa命令时,可以发现安装了大量的RPM包在Linux系统中,每个包中都包含着大量的安装文件。因此,为了及时发现文件被误删除、文件数据被误修改、文件内容被恶意篡改等问题,Linux提供了以下两种检测方式:/rpm/比较目录下的数据库内容,判断文件内容是否被修改。RPM包数字证书验证:用于验证RPM包本身是否被修改过。1、LinuxRPM包校验RPM包校验可以用来判断安装的软件包(或文件)是否被修改。可以这样使用的命令格式分为以下三种。$rpm-Va#验证系统中安装的所有软件包$rpm-Vinstalledpackagename#验证指定RPM包中的文件$rpm-Vfsystemfilename#验证系统文件是否被修改2.LinuxRPM数字证书验证以上RPM包验证方法只能用于验证已安装的RPM包及其文件。如果RPM包本身被篡改过,则无法使用该方法进行有效验证,需要使用第二种方法:RPM数字证书验证方法。数字证书,又称数字签名,由软件厂商直接颁发。Linux系统安装数字证书后,如果修改了RPM包,则此包中携带的数字证书也会发生变化,无法与系统成功匹配,无法安装软件。使用数字证书验证RPM包:必须找到原始公钥文件才能执行安装。安装RPM包会提取RPM包中的证书信息,然后与机器上安装的原厂证书进行验证。如果验证通过,则允许安装;如果验证不通过,则不允许安装并发出警告。数字证书默认会放在系统/etc/pki/rpm-gpg/位置:安装数字证书:$rpm--importRPM-GPG-KEY-centos*安装数字证书后,可以使用下面命令验证:$rpm-qa|grepgpg-pubkey可以看到数字证书已经安装成功。在安装了数字证书的系统上安装RPM包时,系统会自动验证包的数字证书。如果验证通过,则可以安装,否则无法安装。既然可以使用证书,那么也可以卸载数字证书,因为数字证书本身就是一个rpm包,所以可以使用rpm-e来卸载:$rpm-egpg-pubkey-5ba5fa8d-5ccc6012