每天掌握一个Linux命令 - rpm

news2025/6/6 14:38:19

Linux 命令工具 rpm 使用指南

  • Linux 命令工具 rpm 使用指南
    • 一、工具概述
    • 二、安装方式
      • 1. 系统预装
      • 2. 源码编译安装(极少场景)
    • 三、核心功能
    • 四、基础用法
      • 1. 安装软件包
      • 2. 升级软件包
      • 3. 查询软件包信息
      • 4. 卸载软件包
      • 5. 验证文件完整性
    • 五、进阶操作
      • 1. 批量操作与脚本化
      • 2. 构建 RPM 包
      • 3. 处理依赖关系
    • 六、实战案例
      • 案例 1:安装 Nginx 稳定版
      • 案例 2:升级 MySQL 客户端
      • 案例 3:卸载 Apache 并清理残留
    • 七、注意事项
      • 1. 依赖管理风险
      • 2. 系统文件保护
      • 3. 版本兼容性
      • 4. 权限要求
      • 5. 替代方案

Linux 命令工具 rpm 使用指南

一、工具概述

RPM(Red Hat Package Manager) 是 Red Hat 系 Linux 系统(如 RHEL、CentOS、Fedora)的标准软件包管理工具,用于软件的安装、升级、查询、验证和卸载等操作。其特点包括:

  • 标准化格式:软件包以 .rpm 文件形式发布,包含二进制文件、配置文件、依赖关系等元数据。
  • 依赖管理:自动处理软件包的依赖关系(需结合仓库配置)。
  • 系统一致性:确保安装的软件文件在系统中的位置和权限符合规范。

二、安装方式

1. 系统预装

RPM 工具随 Red Hat 系系统默认安装,无需额外操作。可通过以下命令验证:

rpm --version

2. 源码编译安装(极少场景)

若系统缺失 RPM,可从 RPM 官网 下载源码编译:

wget https://rpm.org/releases/rpm-4.17.x/rpm-4.17.3.tar.gz
tar -zxvf rpm-4.17.3.tar.gz
cd rpm-4.17.3
./configure && make && sudo make install

三、核心功能

功能分类说明
安装软件读取 .rpm 文件并将内容部署到系统指定路径
升级软件替换已安装软件的旧版本,支持保留旧配置文件
查询信息查看软件包的元数据、文件列表、依赖关系等
验证文件检查已安装文件的完整性和修改情况
卸载软件删除已安装的软件包及相关文件(可保留配置文件)
依赖管理检测软件包的依赖关系(需配合 yum/dnf 等高层工具实现自动安装)

四、基础用法

1. 安装软件包

rpm -i package.rpm       # 安装单个 RPM 包
rpm -ivh package.rpm     # -v 显示详细过程,-h 显示进度条(常用组合)

2. 升级软件包

rpm -Uvh package.rpm     # 升级已安装的包,若未安装则直接安装
rpm -Fvh package.rpm     # 仅升级已安装的包(未安装时不执行)

3. 查询软件包信息

rpm -q package_name      # 查询是否已安装(返回版本号表示已安装)
rpm -qi package_name     # 查看详细信息(描述、版本、作者等)
rpm -ql package_name     # 列出包安装的所有文件路径
rpm -qf /path/to/file    # 查询文件属于哪个 RPM 包
rpm -qR package_name     # 查看包的依赖关系

4. 卸载软件包

rpm -e package_name      # 卸载软件包
rpm -e --nodeps package_name  # 强制卸载(忽略依赖,可能导致系统问题)

5. 验证文件完整性

rpm -V package_name      # 检查包文件是否被修改(-V 等价于 --verify)
# 输出说明:S(大小)、M(权限)、5(MD5 校验和)等标记表示文件异常

五、进阶操作

1. 批量操作与脚本化

  • 批量安装多个包
    rpm -ivh package1.rpm package2.rpm package3.rpm
    
  • 结合管道处理查询结果
    rpm -qa | grep httpd   # 查找所有包含 "httpd" 的已安装包
    

2. 构建 RPM 包

通过 rpmbuild 工具将源码或文件打包为 RPM(需先安装 rpm-build 包):

sudo dnf install rpm-build -y
rpmbuild -ba specfile.spec  # 基于.spec 规格文件构建 RPM

3. 处理依赖关系

  • 手动解决依赖
    rpm -ivh --force --nodeps package.rpm  # 强制安装(不推荐,可能导致系统故障)
    
  • 配合 yum/dnf 使用(高层工具自动解析依赖):
    sudo dnf install ./package.rpm  # 通过 dnf 安装 RPM 并自动解决依赖
    

六、实战案例

案例 1:安装 Nginx 稳定版

  1. 下载 Nginx RPM 包:
    wget https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.24.0-1.el8.ngx.x86_64.rpm
    
  2. 安装并查看文件列表:
    rpm -ivh nginx-1.24.0-1.el8.ngx.x86_64.rpm
    rpm -ql nginx  # 查看 Nginx 安装路径(如 /usr/sbin/nginx、/etc/nginx/ 等)
    

案例 2:升级 MySQL 客户端

  1. 查询当前 MySQL 版本:
    rpm -q mysql-client
    
  2. 下载新版本 RPM 并升级:
    wget https://repo.mysql.com//mysql80-community-release-el8-4.noarch.rpm
    rpm -Uvh mysql80-community-release-el8-4.noarch.rpm
    

案例 3:卸载 Apache 并清理残留

rpm -e httpd  # 正常卸载
rpm -e --allmatches httpd  # 卸载所有匹配的 Apache 包
rm -rf /etc/httpd  # 手动删除残留配置文件(根据实际路径调整)

七、注意事项

1. 依赖管理风险

  • 避免强制忽略依赖--nodeps--force 可能导致系统组件缺失或冲突,优先使用 yum/dnf 等工具自动处理依赖。
  • 来源可信性:仅从官方仓库或可信源下载 RPM 包,避免第三方未经签名的包引发安全问题。

2. 系统文件保护

  • 谨慎修改 RPM 管理的文件:通过 RPM 安装的文件会被记录校验信息,手动修改后可能导致 rpm -V 验证失败。若需修改配置,建议使用 rpm -e --noscripts 保留配置文件(卸载时)。

3. 版本兼容性

  • 核对系统版本:RPM 包需与系统发行版(如 CentOS 8、RHEL 9)及架构(x86_64、ARM)匹配,否则可能无法安装或运行。

4. 权限要求

  • 大部分操作需 root 权限:安装、升级、卸载等操作需通过 sudo 或切换至 root 用户执行。

5. 替代方案

  • 高层工具优先:在 Red Hat 系系统中,推荐使用 yum(CentOS 7 及之前)或 dnf(CentOS 8+)替代纯 RPM 命令,以简化依赖管理和仓库配置。

通过以上内容,可全面掌握 RPM 工具的核心功能与实践技巧。在实际使用中,建议结合系统包管理生态(如 yum/dnf + 官方仓库)以提升效率和稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2399465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

153页PPT麦肯锡咨询流程管理及企业五年发展布局构想与路径规划

麦肯锡咨询的流程管理以其高度结构化、数据驱动和结果导向的核心特点著称,旨在为客户提供清晰、可行且价值最大化的解决方案。其典型流程可概括为以下几个关键阶段:下载资料请查看文章中图片右下角信息 问题界定与结构化: 这是流程的基石。麦…

[特殊字符] 革命性AI提示词优化平台正式开源!

AI时代最强大的Prompt工程师已经到来! 你是否还在为写不出高质量提示词而头疼?是否羡慕那些能够驾驭AI、让ChatGPT、Claude乖乖听话的"提示词大师"?今天,我们为你带来一个颠覆性的解决方案——TokenAI Auto-Prompt&…

我的概要设计模板(以图书管理系统为例)

一、总述 1.1 需求或目标 随着数字化阅读普及,传统图书馆管理方式效率低下、资源检索不便。为提升图书管理效率,方便读者借阅与查询,公司计划开发 “在线图书管理系统”,实现图书的电子化管理、快速检索、在线借阅等功能&#x…

DrissionPage爬虫包实战分享

一、爬虫 1.1 爬虫解释 爬虫简单的说就是模拟人的浏览器行为,简单的爬虫是request请求网页信息,然后对html数据进行解析得到自己需要的数据信息保存在本地。 1.2 爬虫的思路 # 1.发送请求 # 2.获取数据 # 3.解析数据 # 4.保存数据 1.3 爬虫工具 Dris…

iptables实战案例

目录 一、实验拓扑 二、网络规划 三、实验要求 四、环境准备 1.firewall (1)配置防火墙各大网卡IP并禁用 firewall和selinux (2)打开firewall路由转发 2.PC1(内网) (1)配置防…

Google AI 模式下的SEO革命:生成式搜索优化(GEO)与未来营销策略

一、搜索范式转变:从链接引导到答案交付 Google自2023年起逐步推出AI搜索功能,经历了SGE(Search Generative Experience)和Gemini阶段,最终在2025年全面上线了「AI Mode」搜索模式。与此同时,也保留了一种过…

SpringBoot中缓存@Cacheable出错

SpringBoot中使用Cacheable: 错误代码&#xff1a; Cacheable(value "FrontAdvertiseVOList", keyGenerator "cacheKey") Override public List<FrontAdvertiseVO> getFrontAdvertiseVOList(Integer count) {return this.list(Wrappers.<Adve…

iOS UIActivityViewController 组头处理

0x00 情形一 - (void)shareAction1 {// 当前 View 转成图片UIImage *image [self snapshotImage:self.view];NSArray *activityItems [image];UIActivityViewController *activityVC [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationAc…

《TCP/IP 详解 卷1:协议》第3章:链路层

以太网和IEEE802局域网/城域网标准 IEEE802局域网/城域网标准 IEEE 802 是一组由 IEEE&#xff08;电气与电子工程师协会&#xff09;定义的局域网和城域网通信标准系列&#xff0c;涵盖了从物理层到链路层的多个网络技术。其中&#xff1a; IEEE 802.3 定义的是传统的以太网…

Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程(二)

package com.test.xulk.es.entity.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.test.xulk.es.entity.Hotel;public interface HotelMapper extends BaseMapper<Hotel> { }集成Springboot 项目里面 官方地址&#xff1a; Elasticsearch …

数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)

数据库管理333期 2025-06-04 数据库管理-第333期 Oracle 23ai&#xff1a;RAC打补丁完全不用停机&#xff08;20250604&#xff09;1 概念2 要求3 操作流程4 转移失败处理总结 数据库管理-第333期 Oracle 23ai&#xff1a;RAC打补丁完全不用停机&#xff08;20250604&#xff0…

【DAY39】图像数据与显存

内容来自浙大疏锦行python打卡训练营 浙大疏锦行 知识点&#xff1a; 图像数据的格式&#xff1a;灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 作业&#xff1a;今日代码较少&#xff0…

AI代码库问答引擎Folda-Scan

简介 什么是 Folda-Scan &#xff1f; Folda-Scan 是一款革命性的智能项目问答工具&#xff0c; 完全在浏览器中本地运行 。它使用高级语义矢量化将您的代码库转变为对话伙伴&#xff0c;使代码理解和 AI 协作变得前所未有的简单和安全。其采用尖端的 Web 技术和 AI 算法构建&…

Kafka深度技术解析:架构、原理与最佳实践

一、 消息队列的本质价值与核心特性 1.1 分布式系统的“解耦器” 异步通信模型 代码列表 graph LRA[生产者] -->|异步推送| B[(消息队列)]B -->|按需拉取| C[消费者1]B -->|按需拉取| D[消费者2] 生产者发送后立即返回&#xff0c;消费者以自己的节奏处理消息。典…

基于cnn的通用图像分类项目

背景 项目上需要做一个图像分类的工程。本人希望这么一个工程可以帮助学习ai的新同学快速把代码跑起来&#xff0c;快速将自己的数据集投入到实战中&#xff01; 代码仓库地址&#xff1a;imageClassifier: 图片分类器 数据处理 自己准备的分类图像&#xff0c;按照文件夹分…

Linux环境管道通信介绍

目录 前言 一、通信的本质 二、匿名管道 1.通信资源——文件缓冲区 2.为什么叫匿名管道&#xff1f; ​编辑 3.匿名管道的创建过程 4.pipe函数 小结 5.一些问题 1&#xff09;匿名管道为什么要求父子进程将原本的读/写权限只保留一个 2&#xff09;为什么一开始父进程要以读/写…

DIC技术助力金属管材全场应变测量:高效解决方案

在石油管道、汽车排气系统、航空航天液压管路等工业场景中&#xff0c;金属管作为关键承力部件&#xff0c;其拉伸性能&#xff08;如弹性极限、颈缩行为、断裂韧性&#xff09;直接影响结构安全性和使用寿命。 实际应用中&#xff0c;选用合适的管材非常重要&#xff0c;通过…

嵌入式学习--江协stm32day1

失踪人口回归了&#xff0c;stm32的学习比起51要慢一些&#xff0c;因为涉及插线&#xff0c;可能存在漏插&#xff0c;不牢固等问题。 相对于51直接对寄存器的设置&#xff0c;stm32因为是32位修改起来比较麻烦&#xff0c;江协课程是基于标准库的&#xff0c;是对封装函数进…

湖北理元理律师事务所:债务化解中的心理重建与法律护航

专业法律顾问视角 一、债务危机的双重属性&#xff1a;法律问题与心理困境 在对173名债务人的调研中发现&#xff1a; 68%存在焦虑引发的决策障碍&#xff08;如不敢接听银行电话&#xff09; 42%因羞耻感隐瞒债务导致雪球效应 湖北理元理律师事务所创新采用法律-心理双轨…

【更新中】(文档+代码)基于推荐算法和Springboot+Vue的购物商城

概要设计 本节规划和定义了Woodnet桌游电商平台的软件概要设计说明书&#xff0c;描述了软件的总体设计、接口设计、运行设计、系统数据库结构设计以及系统出错处理设计&#xff0c;从整体上说明了系统设计的结构层次、处理流程、系统用例等。 本系统是一个独立的系统&#x…