使用 RPM 命令查询软件包

RPM 数据库中存储了安装在系统中所有软件包的信息,数据库的位置是 /var/lib/rpm/ 使用这个数据库,你能够查询到系统中安装了哪些软件包、软件包的版本号是多少、软件包中的文件自安装之后进行了多少更改,以及其它方面查询。

RPM 数据库中存储了安装在系统中所有软件包的信息,数据库的位置是 /var/lib/rpm/ 使用这个数据库,你能够查询到系统中安装了哪些软件包、软件包的版本号是多少、软件包中的文件自安装之后进行了多少更改,以及其它方面查询。

查询这个数据库,需要使用 -q 选项。例如使用 rpm -q <package_name> 命令查询软件包是否已经安装,对于已安装的软件包,则会返回 rpm 包的全名

~]# rpm -q tree
tree-1.5.2.2-4.fc12.x86_64

在查询时,你还可以通过使用以下选项与 -q 选项配合,加强 RPM 的查询功能 ( rpm 的查询功能十分强大而且有效,更多信息可以参考 man rpm)

  • -a - 查询所有已安装的软件包
  • -f <file_name> - 从 RPM 数据库中查询哪个软件包包含指定的文件,查询时要指定文档的绝对路径,即使用 rpm -qf /bin/ls 而不是 rpm -qf ls
  • -p <package_file> - 对还未安装到系统中的软件包文件进行查询

请求软件包信息 以下选项用于指定以何种形式显示你所搜索的信息,这些选项被称为“软件包查询选项 (Package Query Options)”

  • -i - 显示有关软件包的详细信息,包含软件包名称、描述、发行版、大小、封装日期、安装日期、软件提供商以及其它许多信息
  • -l - 显示软件包所包含的文件列表
  • -s - 显示软件包中所有文件的状态
  • -d - 显示软件包中标识为文档 (如 man 文档,info 文档 和 README 文档) 的文件列表
  • -c - 显示软件包中标识为配置文件的文件列表 (如 smb.conf, passwd, inittab 等文档)

为以上给出文件列表的选项加上 -v 选项,能够显示长文件信息,格式与 ls -l 相似。


付费阅读