RPM与YUM:Linux包管理工具的区别与常用命令

在基于Red Hat的Linux发行版(如RHEL、CentOS、Fedora等)中,包管理系统是系统维护和软件管理的重要组成部分。RPM(Red Hat Package Manager)和YUM(Yellowdog Updater, Modified)是两种常用的包管理工具,它们在软件包的安装、升级和管理方面发挥着至关重要的作用。虽然这两个工具有许多共同点,但它们在使用场景和功能上有所不同。本文将介绍RPM和YUM的区别,以及它们的常用命令。

一、RPM与YUM的基础概念

RPM包管理员(简称RPM,全称为The RPM Package Manager)
是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版(例如Gentoo)。RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一。

Yum(全称为 Yellow dog Updater, Modified)
是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 [1]

二、RPM与YUM的区别

特性RPM(The RPM Package Manager)YUM(Yellow dog Updater, Modified)
类型低级包管理工具高级包管理工具
依赖关系不自动解决依赖关系,安装时需要手动处理依赖自动解决依赖关系,安装时自动处理缺失的依赖
操作范围仅管理本地RPM包可以从网络仓库安装软件包,支持远程仓库管理
功能安装、卸载、查询、验证RPM包包管理、仓库管理、自动更新、依赖管理
操作对象本地RPM包本地和远程仓库中的RPM包
适用场景用于安装本地软件包和简单的包管理用于大规模的软件管理、更新和依赖管理

总结:

1.RPM更多用于管理本地RPM文件,适用于单一的、无依赖关系的软件包操作。
2.YUM则更加智能,能通过仓库自动处理依赖关系,适合大规模的软件安装和系统更新。

三、常用命令

1. RPM常用命令

分类命令解释
RPM 安装包rpm -ivh package.rpm-i:安装 -v:显示详细输出 -h:显示安装进度
RPM 卸载包rpm -e package_name-e:卸载
RPM 查询已安装包rpm -qa-q:查询 -a:所有已安装包
RPM 查询特定包信息rpm -qi package_name-i:显示详细信息
RPM 验证包rpm -V package_name-V:验证

2. YUM常用命令

分类命令解释
YUM 安装包yum install package_name从仓库下载并安装
YUM 卸载包yum remove package_name卸载已安装包
YUM 更新特定包yum update package_name更新指定已安装包
YUM 更新所有包yum update更新系统中所有已安装包
YUM 搜索包yum search package_name查询仓库中可用包
YUM 获取包详细信息yum info package_name查看指定包详细信息
YUM 列出启用仓库yum repolist查看当前启用的仓库
YUM 清除缓存yum clean all清理 YUM 缓存

3. YUM与RPM结合使用

在实际的系统管理中,YUM和RPM常常配合使用。例如,如果你知道要安装的软件包的具体名称但不想通过仓库来安装,可以先使用RPM手动安装包文件,再用YUM进行其他的包管理任务。

四、什么时候使用RPM,什么时候使用YUM?

  • 使用RPM

    • 你已经下载了一个特定版本的RPM包,并且只需要安装它。
    • 你需要手动管理包的安装,卸载或查询,不需要依赖关系的自动解决。
  • 使用YUM

    • 你需要从互联网仓库安装、更新或卸载软件包。
    • 你希望YUM自动处理软件包的依赖关系,尤其是在安装和更新多个包时。
    • 你需要定期更新系统中的所有软件包,或者安装和管理多个软件包。

五、总结

RPM和YUM是Linux系统中非常重要的包管理工具,它们在软件包管理中扮演着不同的角色。RPM是一个底层工具,适合管理本地RPM文件,提供基础的安装、查询和卸载功能。而YUM则是一个高级工具,它建立在RPM之上,通过管理远程仓库,自动处理软件包的依赖关系,适合大规模的系统更新和维护。
对于日常的系统管理,YUM通常是首选,因为它提供了更高效和智能的包管理功能。而RPM则在某些特定场景下,例如安装本地的RPM包或验证包完整性时,仍然非常有用。
希望通过本文,你能对RPM和YUM有一个更清晰的理解,能够根据实际需求合理选择和使用这两种工具。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s调度器扩展(scheduler)

1.K8S调度器 筛选插件扩展 为了熟悉 K8S调度器扩展步骤,目前只修改 筛选 插件 准备环境(到GitHub直接下载压缩包,然后解压,解压要在Linux系统下完成) 2. 编写调度器插件代码 在 Kubernetes 源代码目录下编写调度插件…

领养我的宠物:SpringBoot开发指南

第2章 开发环境与技术 本章节对开发宠物领养系统需要搭建的开发环境,还有宠物领养系统开发中使用的编程技术等进行阐述。 2.1 Java语言 Java语言是当今为止依然在编程语言行业具有生命力的常青树之一。Java语言最原始的诞生,不仅仅是创造者感觉C语言在编…

Permute for Mac 媒体文件格式转换软件 安装教程【音视频图像文件转换,简单操作,轻松转换,提高效率】

Mac分享吧 文章目录 Permute for Mac 格式转换软件 效果图展示一、Permute 格式转换软件 Mac电脑版——v3.11.15⚠️注意事项:1️⃣:下载软件2️⃣:安装软件2.1 左侧安装包拖入右侧文件夹中,等待安装完成,运行软件2.2…

【Android】EventBus的使用及源码分析

文章目录 介绍优点基本用法线程模式POSTINGMAINMAIN_ORDEREDBACKGROUNDASYNC 黏性事件 源码注册getDefault()registerfindSubscriberMethods小结 postpostStickyunregister 介绍 优点 简化组件之间的通信 解耦事件发送者和接收者在 Activity、Fragment 和后台线程中表现良好避…

原子类、AtomicLong、AtomicReference、AtomicIntegerFieldUpdater、LongAdder

原子类 JDK提供的原子类,即Atomic*类有很多,大体可做如下分类: 形式类别举例Atomic*基本类型原子类AtomicInteger、AtomicLong、AtomicBooleanAtomic*Array数组类型原子类AtomicIntegerArray、AtomicLongArray、AtomicReferenceArrayAtomic…

【Electron学习笔记(三)】Electron的主进程和渲染进程

Electron的主进程和渲染进程 Electron的主进程和渲染进程前言正文1、主进程2、渲染进程3、Preload 脚本3.1 在项目目录下创建 preload.js 文件3.2 在 main.js 文件下创建路径变量并将 preload.js 定义为桥梁3.3 在 preload.js 文件下使用 electron 提供的contextBridge 模块3.4…

FFmpeg一些常用的命令

官网:https://ffmpeg.org/ 官网下载:https://ffmpeg.org/download.html 官网下载源码:https://www.ffmpeg.org/releases/ FFmpeg 实用命令 — FFmpeg 教程 文档 一、参数 1.1 FFmpeg 常用参数 参数说明备注-i filename指定输入文件&#…

JAVA篇08 —— String类

欢迎来到我的主页:【一只认真写代码的程序猿】 本篇文章收录于专栏【小小爪哇】 如果这篇文章对你有帮助,希望点赞收藏加关注啦~ 目录 1 String概述 1.1 String特性 1.2 String常用方法 2 StringBuffer类 2.1 String与StringBuffer互转 2.2 Stri…

Flink四大基石之Time (时间语义) 的使用详解

目录 一、引言 二、Time 的分类及 EventTime 的重要性 Time 分类详述 EventTime 重要性凸显 三、Watermark 机制详解 核心原理 Watermark能解决什么问题,如何解决的? Watermark图解原理 举例 总结 多并行度的水印触发 Watermark代码演示 需求 代码演示&#xff…

LabVIEW将TXT文本转换为CSV格式(多行多列)

在LabVIEW中,将TXT格式的文本文件内容转换为Excel格式(即CSV文件)是一项常见的数据处理任务,适用于将以制表符、空格或其他分隔符分隔的数据格式化为可用于电子表格分析的形式。以下是将TXT文件转换为Excel(CSV&#x…

CENet及多模态情感计算实战

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

共享售卖机语音芯片方案选型:WTN6020引领智能化交互新风尚

在共享经济蓬勃发展的今天,共享售卖机作为便捷购物的新形式,正逐步渗透到人们生活的各个角落。为了提升用户体验,增强设备的智能化和互动性,增加共享售卖机的语音功能就显得尤为重要。 共享售卖机语音方案选型: WTN602…

云备份实战项目

文章目录 前言一、整体项目简介二、服务端环境及功能简介三、 客户端环境及功能简介四、服务端文件管理类的实现1. 获取文件大小,最后一次修改时间,最后一次访问时间,文件名称,以及文件内容的读写等功能2. 判断文件是否存在&#…

【Linux】死锁、读写锁、自旋锁

文章目录 1. 死锁1.1 概念1.2 死锁形成的四个必要条件1.3 避免死锁 2. 读者写者问题与读写锁2.1 读者写者问题2.2 读写锁的使用2.3 读写策略 3. 自旋锁3.1 概念3.2 原理3.3 自旋锁的使用3.4 优点与缺点 1. 死锁 1.1 概念 死锁是指在⼀组进程中的各个进程均占有不会释放的资源…

通俗易懂:序列标注与命名实体识别(NER)概述及标注方法解析

目录 一、序列标注(Sequence Tagging)二、命名实体识别(Named Entity Recognition,NER)**命名实体识别的作用****命名实体识别的常见实体类别** : 三、标签类型四、序列标注的三种常见方法1. **BIO&#xf…

设计模式学习[10]---迪米特法则+外观模式

文章目录 前言1. 迪米特法则2. 外观模式2.1 原理阐述2.2 举例说明 总结 前言 之前有写到过 依赖倒置原则,这篇博客中涉及到的迪米特法则和外观模式更像是这个依赖倒置原则的一个拓展。 设计模式的原则嘛,总归还是高内聚低耦合,下面就来阐述…

JUnit介绍:单元测试

1、什么是单元测试 单元测试是针对最小的功能单元编写测试代码(Java 程序最小的功能单元是方法)单元测试就是针对单个Java方法的测试。 2、为什么要使用单元测试 确保单个方法运行正常; 如果修改了代码,只需要确保其对应的单元…

用Transformers和FastAPI快速搭建后端算法api

用Transformers和FastAPI快速搭建后端算法api 如果你对自然语言处理 (NLP, Natural Language Processing) 感兴趣,想要了解ChatGPT是怎么来的,想要搭建自己的聊天机器人,想要做分类、翻译、摘要等各种NLP任务,Huggingface的Trans…

架构师:Dubbo 服务请求失败处理的实践指南

1、简述 在分布式服务中,服务调用失败是不可避免的,可能由于网络抖动、服务不可用等原因导致。Dubbo 作为一款高性能的 RPC 框架,提供了多种机制来处理服务请求失败问题。本文将介绍如何在 Dubbo 中优雅地处理服务请求失败,并结合具体实践步骤进行讲解。 2、常见处理方式 …

shell语法(1)bash

shell是我们通过命令行与操作系统沟通的语言,是一种解释型语言 shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用 Linux系统中一般默认使用bash为脚本解释器 在Linux中创建一个.sh文件,例如vim test.sh…