当前位置: 首页 > news >正文

【Linux】rpm和yum包管理

1.安装包和程序关系

用一个形象的示例解释在计算机中安装包和程序的关系:

程序=想要的玩具(如微信,qq)。本质是存储在硬盘上,等待被CPU执行的代码和数据

安装包=快递盒。快递盒中包含玩具的零部件、说明书、以及安装工具。目的是为了将玩具组装好,即将软件安装到你的电脑上。

Windows概念Linux对应概念说明
安装包 (.exe / .msi)RPM包 (.rpm) / DEB包 (.deb)这就是“快递盒”,里面装着编译好的程序文件。
双击安装包rpm -ivhyum install执行安装过程,把文件解压到系统指定位置。
程序的安装位置/usr/bin//usr/lib//etc/Linux没有C盘,它把可执行命令/usr/bin库文件/usr/lib配置文件/etc
程序启动入口 (.exe)命令(如nginxpython在Linux里,程序本体通常不叫.exe,而是一个无后缀的二进制文件(如/usr/bin/nginx),你在终端敲命令就是在运行它。
快捷方式软链接 (ln -s)相当于Windows的桌面快捷方式。

在Linux环境下:

RPM包(快递盒):不会永久存放,用yum下载暂存在/var/cache,装完就删除

程序(玩具):安装后,它的可执行命令永久存放在/usr/bin/下,库文件/usr/lib下。你想用的时候,直接在终端敲命令名(如nginx),系统就去/usr/bin/里找到它并运行。

2.Linux包管理器下载流程

2.Linux包管理器下载流程

  • 第一步(下载):当你敲下yum install nginx时,系统会根据软件源(Repo)里的地址,把nginx.rpm这个“快递盒”下载到本地的缓存目录/var/cache里。

  • 第二步(校验):下载完后,系统会核对这个包的MD5/SHA256校验码,确保下载过程没损坏,防止文件不完整。

  • 第三步(解压安装):系统调用底层的rpm工具,把这个“快递盒”拆开,把里面的程序本体(可执行文件)解压到/usr/bin/,把配置文件放到/etc/,把库文件放到/usr/lib/。同时把安装信息写入本地的RPM数据库(方便以后卸载)。

  • 第四步(缓存保留)安装完成后,原始的.rpm文件并不会被自动删除。它会默认留在缓存目录里。

3.镜像和本地源

  • 镜像(Mirror):指的是“内容完全一致”。它是官方仓库在别的服务器上的一份克隆副本

  • 本地源(Local Repo):指的是“位置在本地”。它是相对于你的电脑而言,处在内网或本机硬盘上的软件仓库。

    ①“本地源”的“本地”是相对于“公网(Internet)”而言的,绝不是相对于“本机(这台物理机)”。

    ②只要这个源服务器和你的测试机在同一个内网(局域网)里,IP地址能互通(ping通),它就叫做“本地源”。

    ③你yum install时,流量是走内网(局域网)还是走公网(互联网)?走内网,就叫使用本地源;走公网,就叫使用远程镜像源。

它们的关系是:本地源通常是通过“同步(克隆)”一个远程镜像来搭建的。

在本地配置文件查看当前所访问源类型:

你打开 Linux 的源配置文件(/etc/yum.repos.d/xxx.repo),里面的baseurl=后面跟的地址,直接说明了它们的身份:

  • 如果baseurl=后面是互联网地址(如https://mirrors.aliyun.com:这就是在访问公共镜像

  • 如果baseurl=后面是内网IP(如http://192.168.1.100/centos)或file:///mnt/cdrom:这就是在访问本地源

4.rpm

rpm用于互联网下载包的打包及安装工具,包含在某些Linux分发版中,处理具有.RPM扩展名的文件。RPM是redHat Package Manager的缩写,类似windows的setup.exe

4.1简单查询指令

rpm -qa

功能描述:查询已安装的rpm列表

(注:上面2提到的缓存目录/var/cache中保存的是下载的.rpm文件本身,当这些rpm文件被RPM工具解压安装后,系统在数据库写入这条安装记录,此时rpm -qa就能查到此条记录)

应用示例:查询当前系统是否安装了firefox

rpm -q 软件包名

功能描述:查询软件包是否安装

应用实例:指定查询firefox是否安装

rpm -qi 软件包名

功能描述:查询软件包的详细信息

应用实例:查询firefox安装包详细信息

rpm -ql 软件包名

功能描述:查询软件包中的文件

应用实例:查看firefox软件包在本机所安装的文件

rpm -qf 文件全路径名

功能描述:查询文件所属的软件包

应用实例:

eg1 查询gcc文件属于哪个软件包

eg2 查询gcc目录属于哪个软件包

注:

在 Linux 文件系统中,一个目录可以被多个 RPM 软件包同时声明为“自己的”(在打包规范中用%dir标记)。

/lib/gcc是所有 GCC 相关工具链存放子文件的“大本营”。为了互不冲突,C 编译器、C++ 编译器、Fortran 编译器、数学库等都会把各自的子目录或文件放进去。因此,在安装时,它们都会在 RPM 数据库里登记:“我也拥有/lib/gcc这个目录”。

当你用rpm -qf查询目录(而不是具体文件)时,RPM 会把所有登记过拥有该目录的包全部列出来,所以就出现了你看到的 5 个。

4.2 删除指令

rpm -e 软件包名

功能描述:删除软件,将安装包解压进系统的文件和注册表信息全部删除。

注:

如果其他软件包依赖于要卸载的软件包,则卸载时会产生错误信息

应用实例:删除firefox

4.3 安装指令

rpm -ivh RPM包全路径名称

功能描述:安装rpm包,即安装软件

参数说明:

i(install) 安装

v(verbose)提示

h(hash)进度条

应用实例:安装firefox

5.yum

yum也是包管理器,底层调用rpm。能够自动从yum源下载并安装软件包到本地,同时可以自动处理依赖性关系,并且一次性安装所有依赖的软件包。

5.1 基本指令

yum list | grep xx软件包

功能描述:查询yum服务器是否有指定的软件包

应用实例:查询yum是否有firefox

yum install xx软件包

功能描述:安装指定的软件包

应用实例:使用yum 安装firefox

yum remove xx软件包

功能描述:卸载指定的软件包,并自动处理依赖关系,将不再被其他软件使用的依赖包一并移除。

参数说明:

-y 自动确认,跳过卸载过程中的交互式确认提示

应用实例:卸载firefox

与 rpm -e 的区别:

rpm -e卸载时如果遇到其他软件包依赖该软件,会直接报错并停止卸载;而yum remove会自动分析依赖关系,把需要一并移除的依赖包也处理掉,卸载过程更省心。

6. rpm和yum区别

rpmyum
数据源本地.rpm文件网络 yum 源仓库
依赖处理❌不处理,缺依赖直接报错✅自动下载安装全部依赖
卸载 / 安装直接操作本地包联网解析,底层调用 rpm
使用场景手里已经有 rpm 文件,离线操作绝大多数日常安装、升级软件

总结:

yum底层还是调用 rpm 去安装软件,但是 yum 多了这些能力:

  1. 联网访问 yum 源仓库,自动下载.rpm
  2. 自动分析依赖,把所有需要的包一并下载,调用 rpm 批量安装
  3. 处理升级,自动解决版本冲突
http://www.cnnetsun.cn/news/4338167.html

相关文章:

  • 虚拟机热迁移技术:预拷贝、后拷贝与增量迁移
  • OceanBase分布式数据库核心概念与本地部署实战指南
  • TS 7.0 弃用 emitDecoratorMetadata?Rfclt 运行时类型元数据迁移指南
  • 大模型重塑创作流程:从生产者到判断者的工程实践
  • 企业微信API二次开发:智能客服最小闭环
  • 国产医疗AI爆发!从单点工具到智能体医疗,这六大领域颠覆看病体验!
  • 双MCU工业电源设计:STM32G4 CORDIC加速FOC与STM32U5安全合规实践
  • Coze 自定义模型接入 Ace Data Cloud:把主流 AI 模型能力接进智能体工作流
  • STM32MP1运行时DDR容量检测:从启动链到Linux的完整方案
  • STM32MP1运行时DDR容量检测:从U-Boot到Linux的完整实现
  • 潍坊壁挂炉维修上门服务-欧米到家解决不点火、异响及故障代码
  • 从跑团Log到Replay:Python+正则表达式自动解析与视频生成完整方案
  • Shieldprompt:零依赖的LLM安全测试,快速定位提示注入风险
  • STUSB4500 No Power故障排查:USB-C受电板无输出电压解决指南
  • 逆变器H桥维修:空载正常带载保护?先查高压三极管是否选错
  • C++校招笔试备战指南:从核心知识点到算法模板的全面拆解
  • STM32N6摄像头适配:DCMI采集与NPU输入实战解析
  • STM32WB上电不运行?从复位时序到选项字节的完整排查指南
  • ZTools:开源首字母搜索启动器,打造可扩展的本地工作流
  • 基于YOLOv5的车辆违停识别告警系统:Python毕设项目解析
  • 用拓扑数据分析挖掘量化因子:从持久同调到Python实战
  • STM32U5G9固件与Option Bytes打包合并为单个Hex的产线烧录实践
  • 基于STM32F446的双通道SiPM符合测量与峰值检测系统
  • STM32N6570-DK调试报错:Target is not responding排查与解决
  • STM32N6570 AI工程调试失败:PSRAM初始化顺序导致Target is not responding
  • VMware虚拟机创建、VMtools安装与系统镜像下载校验全攻略
  • DeepSeek API计费调整:从token成本结构到调用优化与报错排查
  • 工业视觉检测系统从需求分析到现场调试的完整实战指南
  • 基于CNN+LSTM的网络流量检测系统设计与实现
  • AI创业如何通过概念验证获得投资?从demo到验证的关键路径