1 概述

工作中,可能需要看到服务包的信息,决定安装或者卸载。一般可以通过以下语句进行查看

which ifconfig   查看命令的执行文件放在哪里

rpm -qf /sbin/ifconfig

rpm -q --whatprovides /sbin/ifconfig    两条命令一样的效果通过执行文件完整路径查看是由哪个服务包提供的

结果得到包    net-tools-1.60-110.el6_2.i686

rpm -qi net-tools   //查看服务包的信息

rpm -qc net-tools   //查看服务包的配置文件在哪里

当然,这里只是一小部分的选项和参数,本文将对rpm涉及的查询参数进行详细解释

2 查询命令详解

命令格式

rpm {-q|--query} [select-options] [query-options]

2.1 [select-options]详解

-a: 所有包

rpm -qa

-f: 查看指定的文件由哪个程序包安装生成

rpm -q -f /sbin/ifconfig

-p rpmfile:针对尚未安装的程序包文件做查询操作

rpm -qp tree-1.5.3-2.el6.i686.rpm

--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供

rpm -q --whatprovides /sbin/ifconfig

--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖

rpm -q --whatrequires /sbin/quotaoff

rpm2cpio 包文件|cpio–itv预览包内文件

rpm2cpio tree-1.5.3-2.el6.i686.rpm | cpio -itv

rpm2cpio 包文件|cpio–id “*.conf”释放包内文件

rpm2cpio /media/Packages/tree-1.5.3-2.el6.i686.rpm | cpio -id "*LICENSE"

这里要注意的是,如果要释放,要先用-itv查看要释放的路径的起始点,然后到文件起始点对应路径下去执行命令

cpio安装软件,其实是把cpio包全部安装路径释放出来,但是这样安装出来的软件,不能通过rpm去查看属性信息或者是卸载(rpm -e)软件,如果要删除,只能把释放的文件夹直接删掉达到卸载的命令

这里其实rpm -e 命令,卸载的对应的服务包,其实是将cpio -itv查看到的文件,即安装文件全部删除。

rpm2cpio /media/Packages/tree-1.5.3-2.el6.i686.rpm | cpio -idv //这里执行前要先查看释放的路径后再到对应路径下操作

1240

cpio命令截图

2.2 [query-options]详解

--changelog:查询rpm包的changelog,查看服务包的历史发展情况

rpm -q --changelog coreutils-8.4-31.el6.i686

-c: 查询程序的配置文件

rpm -q -c net-tools-1.60-110.el6_2.i686

-d: 跟服务包,如果命令和包同名,也可以跟命令,如tree,查询程序的文档

rpm -q -d tree-1.5.3-2.el6.i686

-i: information

rpm -q -i net-tools-1.60-110.el6_2.i686

-l: 查看指定的程序包安装后生成的所有文件,,其中/sbin/或者/bin下的文件就是这个服务包对应的命令,即功能。/etc/下的文件为该服务包的配置文档,/usr/share/doc/和/usr/share/man为该服务包使用或解释文档

rpm -q -l net-tools-1.60-110.el6_2.i686

--scripts: 后面跟命令,查看程序包自带的脚本

rpm -q --scripts bash

--provides:后面跟服务包, 列出指定程序包所提供的CAPABILITY

rpm -q --provides net-tools-1.60-110.el6_2.i686

-R:后面跟服务包, 查询指定的程序包所依赖的CAPABILITY

rpm -q -R net-tools-1.60-110.el6_2.i686

到这里,rpm查询的相关命令已解释完成。