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

查询软件包是否已安装

查询系统中所有已安装的软件包

查看软件包的详细信息

查询软件包的文件列表

查询某系统文件具体属于哪个 RPM 包

rpm 查询命令的格式如下:

$ rpm 选项 包名

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

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

$ rpm -q 包名

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

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

$ rpm -q sudo

如果系统中安装了我们要查询的软件,则书输出软件的包名信息,如果没有安装,则告诉我们package is not installed。

这里查询的时候,只需要我们输入包名就可以,并不需要输入包全名,系统可以自动识别。

二、查询系统中所有安装的软件包:-qa

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

$ rpm -qa

可以看到,会把我们系统中安装的所有的软件包输出。如果我们想要查询某个包是否安装,但是记不全包名,那么可以使用管道符查找,比如我们要查询包含su的软件:

$ rpm -qa | grep su

执行命令之后,会把软件名包含su的软件全部列出来。

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

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

$ rpm -qi sudo

比如我们要查询sudo软件的详细信息:

Name:包名

Version:版本号

Release:发行版本

Install Date:安装时间

Group、Source RPM:组和源RPM包文件名

Signature:数字签名

Summary:软件包说明

Description:软件详细描述

Packager、URL:厂商以及地址

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

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

$rpm -ql 包名

比如查看sudo软件包所有文件以及各自的安装位置:

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

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

$ rpm -qf 系统文件名

注意:只有使用 RPM 包安装的文件才能使用该命令,手动方式建立的文件无法使用此命令。

比如查询 ls 命令所属的软件包,可以执行如下命令:

rpm -qf /bin/ls

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

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

$ rpm -qR 包名

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

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

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

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

RPM 包校验:其实就是将已安装文件和 /var/lib/rpm/目录下的数据库内容进行比较,确定文件内容是否被修改。

RPM 包数字证书校验:用来校验 RPM 包本身是否被修改。

1、Linux RPM 包校验

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

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

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

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

2、Linux RPM数字证书验证

上述RPM包校验方法只能用来校验已安装的RPM包及其文件,如果RPM包本身就被篡改过,使用该方法就无法有效校验了,因此需要使用第二种方法: RPM 数字证书验证方法。

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

使用数字证书验证RPM包:

必须找到原厂的公钥文件,然后才能进行安装。

安装 RPM 包会提取 RPM 包中的证书信息,然后和本机安装的原厂证书进行验证。如果验证通过,则允许安装;如果验证不通过,则不允许安装并发出警告。

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

安装数字证书:

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

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

$ rpm -qa|grep gpg-pubkey

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

既然可以按照证书,同样也能卸载数字证书,因为数字证书本身也是一个RPM包,因此可以使用 rpm -e 卸载:

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

linux查看命令源rpm,Linux rpm查询命令以及RPM包验证相关推荐

  1. linux查看是否有某个运行的进程命令(不包括查询进程这条语句)

    转自:http://www.cnblogs.com/zdz8207/p/3760891.html linux查看是否有某个运行的进程命令:例如,查询是否包含 "my_post" 关 ...

  2. linux查看和结束进程,Linux查看和结束进程命令详解

    在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill .killall.pkill.xkill 等进行. ----------------------------------- ...

  3. linux下free源码,linux命令free源码解读:Procps free.c

    linux命令free源码解读 linux命令free源码解读:Procps free.c 作者:isayme 发布时间:September 26, 2011 分类:Linux 我们讨论的是linux ...

  4. linux查看nbu数据库命令,NBU基本常用命令

    Veritas常用命令: 1. 查看当有运行的任务 bpdbjobs –report | grep Active 2. 停止任务 bpdbjobs –cancel PID (包括主任务和子任务) 3. ...

  5. Linux查看DNS地址以及端口,nslookup命令以及更强大的dig命令

    先说结论:DNS端口一般默认为53,默认采用UDP协议: 下面说查看方式: 一.使用nslookup命令查看 nslookup baidu.com 返回结果为: 可以看到,我的服务器DNS地址是100 ...

  6. linux中giep命令作用,Linux查看硬件信息以及驱动设备的命令

    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查 ...

  7. Linux查看硬件信息以及驱动设备的命令

    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查 ...

  8. linux c free源码,linux命令free源码解读:Procps free.c

    linux命令free源码解读 linux命令free源码解读:Procps free.c 作者:isayme 发布时间:September 26, 2011 分类:Linux 我们讨论的是linux ...

  9. linux 重新扫描硬件,Linux查看硬件信息以及驱动设备的命令

    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查 ...

  10. linux 查看进程的lsof,Linux 命令神器:lsof 入门

    lsof是系统管理/安全的尤伯工具.我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步.将这个工具称之为lsof真实名副其实,因为它是指"列出打开文 ...

最新文章

  1. jmeter笔记(8)--关联
  2. 效果很好的asp.net的数据库访问模型(优化,封装一体化)
  3. 使用Xcode修改iOS项目工程名和路径名
  4. 电脑安装python为什么不能用-python安装后不能运行怎么办
  5. python初学工资-python工资高还是java?
  6. webpack Plugins列表
  7. pipreqs------查找python项目依赖并生成requirements.txt
  8. 机器学习入门02-朴素贝叶斯原理和java实现
  9. sysdig案例分析 - 哪些文件正在被进程访问
  10. Linux: 两个USB摄像头的数据采集问题
  11. 记录——《C Primer Plus (第五版)》第七章编程练习第九题
  12. python数据处理太慢_使用Python将数据写入LMDB非常慢
  13. java 解析m3u8的实例_ck播放器m3u8直连代码
  14. hmcl手机版_hmcl启动器手机版下载-hmcl启动器 安卓版v1.1.4-PC6安卓网
  15. zmodem transfer cancled by remote side 解决办法
  16. Learning Instagram 学习Instagram Lynda课程中文字幕
  17. 走向.NET架构设计---第二章:设计 测试 代码
  18. Win7 不支持此接口问题
  19. android viewpagerindicator tab,ViewPager系列之顶部滑动indicator+viewPager
  20. win101909要不要更新_近年最稳的Win10更新?Win101909值得升级吗

热门文章

  1. Hololens开发常见错误
  2. 190221每日一句
  3. unity设置一个物体是另一个物体的子物体
  4. atitit 英文与中文与阿拉伯文的简化解决方案.docx
  5. Atitit Immutability 和final的优点
  6. atitit.javascript调用java in swt attilax 总结
  7. paip.手写OCR识别方法总结--基于验证码识别... 1
  8. paip.提升开发效率-----vs2010源码选择字串高亮
  9. 独家深访陈光明:对内经营人才,对外经营信任
  10. 博格和他的先锋集团创业史(完整版)