linux中yum是干啥的?

在 Linux 中,yum(Yellowdog Updater, Modified)是一个用于管理 RPM 包的命令行工具。它主要用于在基于 RPM 的 Linux 发行版(如 CentOS、RHEL、Fedora 等)中安装、更新、删除和查询软件包。yum 通过连接到配置的软件仓库(repository)来自动解决依赖关系并下载所需的软件包。

yum 的主要功能:

安装软件包:

从配置的仓库中下载并安装软件包及其依赖项。

示例:

sudo yum install package_name

更新软件包:

更新系统中已安装的软件包到最新版本。

示例:

sudo yum update package_name

删除软件包:

卸载已安装的软件包。

示例:

sudo yum remove package_name

搜索软件包:

在仓库中搜索特定的软件包。

示例:

yum search keyword

列出软件包:

列出已安装或可用的软件包。

示例:

yum list installed # 列出已安装的软件包

yum list available # 列出可用的软件包

解决依赖关系:

自动解决软件包的依赖关系,并安装所需的依赖包。

清理缓存:

清理 yum 的缓存数据(如下载的软件包和元数据)。

示例:

sudo yum clean all

查看软件包信息:

显示软件包的详细信息,如版本、描述、依赖关系等。

示例:

yum info package_name

yum 的工作原理:

仓库配置:

yum 从 /etc/yum.repos.d/ 目录下的 .repo 文件中读取仓库配置。

仓库是一个包含软件包和元数据的远程服务器或本地目录。

元数据缓存:

yum 会下载仓库的元数据(如软件包列表、依赖关系等)并缓存到本地,以加快操作速度。

依赖解决:

当安装或更新软件包时,yum 会自动分析依赖关系,并下载和安装所需的依赖包。

yum 的常见用法示例:

安装一个软件包:

sudo yum install httpd

更新所有软件包:

sudo yum update

删除一个软件包:

sudo yum remove httpd

搜索包含关键字的软件包:

yum search python3

查看软件包信息:

yum info nginx

清理缓存:

sudo yum clean all

yum 和 dnf 的关系:

在较新的 RHEL/CentOS/Fedora 版本中,dnf(Dandified Yum)已经取代了 yum 作为默认的包管理工具。

dnf 是 yum 的下一代版本,提供了更好的性能和依赖解决能力,但用法与 yum 基本相同。

如果你使用的是 CentOS 8 或 RHEL 8 及以上版本,建议使用 dnf 命令。

总结来说,yum 是一个强大的包管理工具,能够简化软件包的安装、更新和管理,特别适合在基于 RPM 的 Linux 系统中使用。

yum install package_name和rpm -ivh package.rpm区别

yum install package_name 和 rpm -ivh package.rpm 都是用于在 Linux 系统中安装软件包的命令,但它们的工作方式、功能和适用场景有显著区别。以下是两者的详细对比:

  1. yum install package_name

所属工具:yum(Yellowdog Updater, Modified)。

功能:

从配置的软件仓库(repository)中下载并安装指定的软件包。

自动解决依赖关系:如果安装的软件包依赖其他软件包,yum 会自动下载并安装这些依赖包。

适用场景:

当你需要从官方或第三方仓库安装软件包时。

当你不想手动处理依赖关系时。

优点:

自动化程度高,适合大多数场景。

依赖关系自动解决,减少手动操作。

缺点:

需要网络连接(除非使用本地仓库)。

依赖于仓库的配置和可用性。

示例:

sudo yum install httpd

  1. rpm -ivh package.rpm

所属工具:rpm(Red Hat Package Manager)。

功能:

安装本地的 .rpm 文件。

不自动解决依赖关系:如果安装的软件包依赖其他软件包,rpm 会报错并停止安装,需要手动安装依赖包。

适用场景:

当你有一个本地的 .rpm 文件时。

当你需要手动控制安装过程时。

优点:

不需要网络连接(因为使用本地文件)。

适合离线环境或安装自定义的 RPM 包。

缺点:

需要手动解决依赖关系。

不适合安装复杂的软件包(依赖较多时)。

示例:

sudo rpm -ivh package.rpm

主要区别:

特性 yum install package_name rpm -ivh package.rpm

安装来源 从配置的软件仓库中下载并安装。 安装本地的 .rpm 文件。

依赖解决 自动解决依赖关系。 不自动解决依赖关系,需要手动安装依赖包。

网络依赖 需要网络连接(除非使用本地仓库)。 不需要网络连接(使用本地文件)。

适用场景 适合从仓库安装软件包。 适合安装本地的 RPM 包或离线环境。

自动化程度 高,适合大多数场景。 低,需要手动操作。

命令示例 sudo yum install httpd sudo rpm -ivh package.rpm

使用建议:

优先使用 yum install:

如果你需要从官方或第三方仓库安装软件包,优先使用 yum install,因为它能自动解决依赖关系,减少手动操作。

使用 rpm -ivh 的场景:

如果你有一个本地的 .rpm 文件,或者需要在离线环境中安装软件包,可以使用 rpm -ivh。

如果遇到依赖问题,可以使用 yum 或 dnf 来安装缺失的依赖包:

sudo yum install <dependency_package>

结合使用:

如果你有一个本地的 .rpm 文件,但不想手动解决依赖关系,可以使用 yum 或 dnf 来安装:

sudo yum install ./package.rpm

这种方式会利用 yum 的依赖解决功能。

总结:

yum install:适合从仓库安装软件包,自动化程度高,推荐日常使用。

rpm -ivh:适合安装本地的 RPM 包,但需要手动解决依赖关系,适合离线环境或特定场景。

相关推荐
wbs_scy4 分钟前
Linux 进阶指令实操指南:文件查看、时间管理、搜索压缩全场景覆盖(附高频案例)
linux·运维·服务器
安科瑞刘鸿鹏175 分钟前
高速路灯故障难定位?用 ASL600 实现精确单灯监测与维护预警
运维·网络·物联网·安全
馨谙6 分钟前
Ansible 事实(Facts)全面指南:自动化运维中的主机信息管理
运维·ansible
Lethehong9 分钟前
实测可用|一文搞定OpenClaw部署,免费kimi-k2.5+飞书远程,新手也能秒上手
linux·运维·服务器·玩转openclaw·云端创意实践
馨谙13 分钟前
Ansible处理程序完全指南:实现智能的任务触发机制
运维·ansible
逍遥德13 分钟前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring
承渊政道14 分钟前
Linux系统学习【Linux基础开发工具】
linux·运维·笔记·学习·centos·编辑器
艾莉丝努力练剑15 分钟前
【Linux:文件】基础IO
linux·运维·c语言·c++·人工智能·io·文件
_OP_CHEN17 分钟前
【Linux系统编程】(二十七)手撕动静态库原理与实战:从底层逻辑到代码落地
linux·操作系统·动态库·静态库·c/c++·库的原理与制作
南烟斋..18 分钟前
Linux设备驱动开发完全指南:从启动流程到Platform驱动模型
linux·驱动开发·uboot