rpm -q 功效大


如果你想要在系统上安装、卸载或是升级软件,需要对系统软件进行查询;或是有如下的场景:

  • 安装了一个软件,需要知道这个软件的版本。
  • 遇到一个文件,不认识它,需要知道它是什么软件,有什么作用

可以使用rpm -q 帮助。

RPM查询


包查询

首先你要知道你要查询的是哪一个包,包括:包的名字、包的版本、安装包的发行号

注意:RPM对于包名的大小写是敏感的,而且不接受没有写全的包名、版本号和发行号。且不能使用通配符。但是,给出包名片的一部分信息依然是能找到该包的,rpm -q libc-5.2.18和rpm -q libc-5.2.18-1都能正确地找到包libc-5.2.18-1。

-a :查询所有已经安装的包

使用-a选项查询在你系统上安装好的所有包:

 [root@d0n7 ~]# rpm -aq
libselinux-utils-2.5-.el7.x86_64
...
systemd-sysv--.el7_3..x86_64

其实-a的输出可能会有很多,还可以使用more或者grep重定向输出。

-f:查询有哪些包拥有文件

想用yum安装一个netstat,却不知道其rpm包名字。只要使用-f选项,就可以知道安装包的名字了:

 [root@d0n7 ~]# which netstat
/bin/netstat
[root@d0n7 ~]# rpm -qf /bin/netstat
net-tools-2.0-0.22.20131004git.el7.x86_64

当你遇到"not owned by any package" 时, 如果你心生怀疑,使用如下方法:

1、直接切换到你所要查询文件的目录下,即使是个符号链接,也能带你到真实路径下。

2、通过namei命令来追踪链接的真实文件地址。

-p:查询一个特定的包

-p选项就是用来查询那些还没安装到你系统中的包。

-i:查询包的详细信息

在rpm -q上加上-i选项将会给出包的详细信息:

 [root@d0n7 ~]# rpm -qi net-tools
Name : net-tools
Version : 2.0
Release : 0.22.20131004git.el7
Architecture: x86_64
Install Date: Thu Dec :: PM CST
Group : System Environment/Base
Size :
License : GPLv2+
Signature : RSA/SHA256, Fri Aug :: AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : net-tools-2.0-0.22.20131004git.el7.src.rpm
Build Date : Thu Aug :: PM CST
Build Host : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://sourceforge.net/projects/net-tools/
Summary : Basic networking tools
Description :
The net-tools package contains basic networking tools,
including ifconfig, netstat, route, and others.
Most of them are obsolete. For replacement check iproute package.

上面各项信息的意义如下所示:

  • Name -- 包名
  • Version-- 包的版本
  • Release -- 发行号
  • Install date -- 安装日期
  • Group -- 分组名
  • Size -- 包的大小,以byte为单位
  • Summary -- 简洁的描述
  • Description -- 详细的描述
  • Distribution -- 所属产品
  • Vendor -- 软件的作者
  • Build Date -- 安装包的构建时间
  • Build Host -- 构建时所在的系统类型
  • Source RPM -- 源码包

-l:查找包所安装的所有文件

加上-l查询就能查询出安装包安装的所有文件。

活用RPM获取包的信息的更多相关文章

  1. Android中获取应用程序(包)的信息----PackageManager

    本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下:   第一部分: 获取应用程序的packagena ...

  2. Android中获取应用程序(包)的信息-----PackageManager的使用(一)

    本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下:  第一部分: 获取应用程序的packagenam ...

  3. 重新想象 Windows 8 Store Apps (30) - 信息: 获取包信息, 系统信息, 硬件信息, PnP信息, 常用设备信息

    原文:重新想象 Windows 8 Store Apps (30) - 信息: 获取包信息, 系统信息, 硬件信息, PnP信息, 常用设备信息 [源码下载] 重新想象 Windows 8 Store ...

  4. Android中获取应用程序(包)的信息-----PackageManager的使用

    本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename ...

  5. Android 获取包名,版本信息

    Android 获取包名,版本信息及VersionName名称     <span style="font-size: 14px;">private String ge ...

  6. linux rpm命令之查询包安装与否、包详细信息、包安装位置、文件属于哪个包、包依赖

    查询这个包是否已安装rpm -q 包名rpm -qa-q 查询-a all 查询已安装软件包和未安装软件包详细信息 rpm -qi 包名rpm -qip 包全名-i 查询软件信息-p package, ...

  7. 【转】Android中获取应用程序(包)的信息-----PackageManager的使用(一)

    转载请注明出处:http://blog.csdn.net/qinjuning       本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占 ...

  8. aapt命令获取apk具体信息(包名、版本号号、版本号名称、兼容api级别、启动Activity等)

    aapt命令获取apk具体信息(包名.版本号号.版本号名称.兼容api级别.启动Activity等) 第一步:找到aapt 找到sdk的根文件夹,然后找到build-tools文件夹.然后会看到一些b ...

  9. rpm 程序包管理介绍

    API:application program interface ABI:application binary interface linux系统的ABI文件是ELF格式的 windows系统的AB ...

随机推荐

  1. 2017-2018 ACM-ICPC, NEERC A题Automatic Door 挺棘手的模拟

    题目链接:http://codeforces.com/contest/883/problem/A 题意大致就是有一个门,有n个人有规律的来,时刻分别是a,2a,3a.....na.有m个人无规律的来, ...

  2. bash的工作特性(2)

    bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示. 命令的执行结果状态 成功,失败 bash使用特殊变量$?保存最近一条命令的执行状态结果:echo$? 0:成功 1-255 ...

  3. MySQL数据库-pymysql模块操作数据库

    pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connect() 参数: host=数据库ip port= ...

  4. java程序连接oracle12c报:java.sql.SQLException: ORA-28040: 没有匹配的验证协议。

    报错信息: 2017-09-22 15:17:37,204 WARN [org.hibernate.cfg.SettingsFactory] - Could not obtain connection ...

  5. ES6语法知识

    let/const(常用) let,const用于声明变量,用来替代老语法的var关键字,与var不同的是,let/const会创建一个块级作用域(通俗讲就是一个花括号内是一个新的作用域) 这里外部的 ...

  6. Game Physics Cookbook (Gabor Szauer 著)

    Chapter1: Vectors Chapter2: Matrices Chapter3: Matrix Transformations Chapter4: 2D Primitive Shapes ...

  7. java_线程

    线程1    与线程相关的概念    线程与进程的区别    线程创建策略    线程组        线程创建策略        并发应用中一般有两种不同的线程创建策略        1直接控制线程 ...

  8. Synchronized 有几种用法?

    我们都知道 Synchronized 是线程安全同步用的,大部分程序可能只会用到同步方法上面.其实 Synchronized 可以用到更多的场合. 1.同步普通方法(锁实例对象) 这个也是我们用得最多 ...

  9. java实验四《Android程序设计》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:张士洋 学号:20165308 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:08 ...

  10. Oauth2.0客户端服务端示例

    https://blog.csdn.net/qq_28165595/article/details/80459185 前言前面的理解OAuth2.0认证与客户端授权码模式详解,我们大致了解了Oauth ...