rpm

本文详细介绍RPM命令的各种查询功能,包括对已安装软件的查询、未安装软件包的查看等。通过具体实例演示如何使用RPM命令进行软件包管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询功能

命令格式 rpm {-q|--query} [select-options] [query-options]

  RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,更为详细的具体的,请参考#man rpm

1、对系统中已安装软件的查询

1)查询系统已安装的软件

  语法:rpm -q 软件名

  举例:[root@localhost beinan]# rpm -q gaim

  gaim-1.3.0-1.fc4   

       查看系统中所有已经安装的包,要加 -a 参数 ;

  [root@localhost RPMS]# rpm -qa

  如果分页查看,再加一个管道 |和more命令;

  [root@localhost RPMS]# rpm -qa |more

  在所有已经安装的软件包中查找某个软件,比如说 gaim ;可以用 grep 抽取出来;

  [root@localhost RPMS]# rpm -qa |grep gaim

  上面这条的功能和 rpm -q gaim 输出的结果是一样的;

2)查询一个已经安装的文件属于哪个软件包

  语法 rpm -qf 文件名

  注:文件名所在的绝对路径要指出

  举例:

  [root@localhost RPMS]# rpm -qf /usr/lib/libacl.la

  libacl-devel-2.2.23-8

3)查询已安装软件包都安装到何处

  语法:rpm -ql 软件名 或 rpm rpmquery -ql 软件名

  举例:

  [root@localhost RPMS]# rpm -ql lynx

  [root@localhost RPMS]# rpmquery -ql lynx

4)查询一个已安装软件包的信息

  语法格式: rpm -qi 软件名

  举例:

  [root@localhost RPMS]# rpm -qi lynx

5)查看一下已安装软件的配置文件

  语法格式:rpm -qc 软件名

  举例:

  [root@localhost RPMS]# rpm -qc lynx

6)查看一个已经安装软件的文档安装位置

  语法格式: rpm -qd 软件名

  举例:

  [root@localhost RPMS]# rpm -qd lynx

7)查看一下已安装软件所依赖的软件包及文件

  语法格式: rpm -qR 软件名

  举例:

  [root@localhost beinan]# rpm -qR rpm-python

  查询已安装软件的总结:对于一个软件包已经安装,我们可以把一系列的参数组合起来用;比如 rpm -qil ;比如:

  [root@localhost RPMS]# rpm -qil lynx

2、对于未安装的软件包的查看:

  查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等;

1)查看一个软件包的用途、版本等信息;

  语法: rpm -qpi file.rpm

  举例:

  [root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm

2)查看一件软件包所包含的文件;

  语法: rpm -qpl file.rpm

  举例:

  [root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm

3)查看软件包的文档所在的位置;

  语法: rpm -qpd file.rpm

  举例:

  [root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm

4)查看一个软件包的配置文件;

  语法: rpm -qpc file.rpm

  举例:

  [root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm

5)查看一个软件包的依赖关系

  语法: rpm -qpR file.rpm

  举例:

  [root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm

  /bin/bash

  /usr/bin/python

  config(yumex) = 0.42-3.0.fc4

  pygtk2

  pygtk2-libglade

  rpmlib(CompressedFileNames) <= 3.0.4-1

  rpmlib(PayloadFilesHavePrefix) <= 4.0-1

  usermode

  yum >= 2.3.2

### RPM 包管理工具使用说明 RPM(Red Hat Package Manager)是一种广泛应用于 Red Hat 及其衍生 Linux 发行版中的二进制包管理系统,旨在简化软件的安装、升级、查询和卸载操作。以下是关于 RPM 的详细介绍: #### 功能概述 RPM 提供了一种高效的方式来管理软件包,支持多种基本操作,包括但不限于安装、升级、查询和卸载软件包。它还通过维护一个内部数据库来跟踪已安装的软件及其相关信息[^2]。 #### 命令格式与常用选项 RPM 工具的核心命令结构如下: ```bash rpm [选项] RPM包文件 ``` 常用的选项及其作用包括: - `-i`:安装新的 RPM 软件包。 - `-U`:升级某个软件包;如果该软件尚未安装,则会自动完成安装。 - `-F`:仅当目标软件已经存在时才进行升级,否则放弃操作。 - `-e`:卸载指定的软件包。 - `--force`:强制执行某些可能违反常规规则的操作,例如安装较旧版本的软件包。 - `-h` 和 `-v`:分别用于显示安装进度标记以及提供详细的日志信息[^3]。 #### 查询功能 为了帮助用户更好地理解当前系统上的软件状态,RPM 还提供了丰富的查询手段: - `rpm -qa`:列举所有已安装的软件名称。 - `rpm -ql {package_name}`:展示某一具体软件包对应的实际文件位置列表[^5]。 #### 处理依赖关系 尽管 RPM 自身具备一定的能力去检测并报告缺失的依赖项,但它并不主动解决这些问题。因此,在遇到复杂的多层依赖场景时,推荐借助更高层次的解决方案如 YUM 来自动化这一流程。 #### 数据库修复 偶尔情况下,RPM 内部使用的元数据存储可能出现错误或者损坏现象。对此情况下的恢复措施有两种主要方法可用: - 初始化新数据库:`rpm --initdb` - 重新构建现有数据库:`rpm --rebuilddb` #### 启动由 RPM 安装的服务实例 对于那些作为后台守护进程运行的应用程序来说,一旦它们被成功部署到操作系统之后,就可以利用标准的服务控制接口对其进行操控。举个例子,假设我们刚刚完成了 Apache HTTP Server (httpd) 的设置工作,那么下面两条指令都可以用来激活这个网络服务器组件[^4]: ```bash /etc/rc.d/init.d/httpd start service httpd start ``` ### 示例代码片段 这里给出一段简单的 Python 脚本来批量处理多个 .rpm 文件的安装请求: ```python import os def install_rpms(rpm_list): success = True for rpm in rpm_list: result = os.system(f"sudo rpm -ivh {rpm}") if result !=0 : print(f"Failed to install {rpm}.") success=False return success if __name__=="__main__": rpms=["example1.rpm","example2.rpm"] outcome=install_rpms(rpms) if not outcome: exit(1) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值