找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

545

积分

0

好友

75

主题
发表于 昨天 04:07 | 查看: 7| 回复: 0

在Linux系统管理,尤其是基于RPM包管理的CentOS和RHEL系统中,yum(Yellowdog Updater, Modified)是一个不可或缺的核心工具。它作为RPM包管理的前端,能够自动解决软件安装中最令人头疼的依赖关系问题,极大地提升了软件包管理的效率。

一、yum命令核心介绍

yum是一个基于C/S(客户端/服务器)架构的在线软件安装与管理工具。它能够从预先配置好的软件源(仓库)服务器自动下载RPM包并安装,其最大的优势在于可以自动分析和处理软件包之间的依赖关系,实现一键安装所有必需的依赖包,避免了手动使用rpm命令时繁琐的依赖查找与安装过程。

yum的优势与局限

yum的主要优势即其自动化依赖解决能力。然而,它也存在一定的局限性:如果在软件安装或更新过程中被意外中断(如强制终止),可能会导致仓库元数据损坏,下次使用时出现无法解决的依赖错误。

为了克服yum的某些性能缺陷,后续引入了DNF(Dandified Yum)。DNF作为yum的下一代版本,其命令用法与yum基本兼容,但拥有更快的依赖解析速度和更现代的代码架构(使用Python编写)。在较新版本的Fedora、RHEL 8及CentOS 8中,yum命令实际上是dnf的软链接。

二、yum源配置详解

在使用yum安装任何软件之前,必须确保系统已正确配置yum软件源。软件源可以是本地镜像(如系统安装ISO),也可以是网络镜像(如阿里云、腾讯云等公共镜像站)。

2.1 配置本地yum源

当服务器无法访问互联网时,配置本地源是必要的。

步骤1:挂载系统ISO镜像 首先,确保将系统安装ISO文件挂载到某个目录,例如/mnt

mount -o loop /path/to/your.iso /mnt

步骤2:创建本地仓库配置文件/etc/yum.repos.d/目录下创建一个以.repo结尾的文件,例如local.repo

vim /etc/yum.repos.d/local.repo

文件内容如下:

[local-base] # 仓库ID,必须唯一
name=Local Repository # 仓库描述名称
baseurl=file:///mnt # 仓库路径,file://表示本地文件协议
enabled=1 # 启用此仓库
gpgcheck=0 # 不进行GPG签名校验(对于本地信任源可关闭)

关键参数说明

  • baseurl: 支持file://(本地)、http://ftp://三种协议。
  • gpgcheck: 设为1时,yum会使用GPG密钥校验软件包的完整性和来源,通常网络源建议开启;本地源可设为0。
2.2 配置网络yum源(以阿里云为例)

对于可访问互联网的服务器,配置国内公共镜像源可以极大提升下载速度。

步骤1:备份原有仓库配置

cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/

步骤2:下载阿里云镜像仓库文件 以CentOS 7为例:

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

或者使用curl

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

步骤3:清理并重建yum缓存

yum clean all # 清理旧的缓存
yum makecache # 生成新的元数据缓存

执行完毕后,即可使用阿里云的镜像源进行快速安装。

三、yum语法与常用选项

3.1 基础语法格式

yum [全局选项] <子命令> [包名/组名/...]

3.2 最常用子命令与选项
子命令 描述
install 安装一个或多个软件包
update / upgrade 更新所有或指定软件包
remove / erase 卸载软件包
list 列出仓库中所有/已安装/可更新的软件包
search 在包名和描述中搜索关键词
info 显示软件包的详细信息
provides / whatprovides 查找哪个包提供了某个特定文件或命令
groupinstall 安装一个软件包组(如“开发工具”)
clean 清理缓存数据
常用全局选项 描述
-y 对所有交互提问自动回答“yes”
-q 静默模式,减少输出
--nogpgcheck 禁用GPG签名检查

四、yum实战案例

4.1 软件包安装

案例1:安装httpd(Apache Web服务器)

yum install httpd -y

案例2:从本地目录安装RPM包并自动解决依赖 如果已下载某软件及其所有依赖的.rpm文件到本地目录,可以使用:

yum localinstall ./*.rpm
4.2 查询与搜索

案例1:查看nginx包的详细信息

yum info nginx

案例2:查找提供ifconfig命令的软件包

yum provides */ifconfig

通常会发现net-tools包提供了此命令。

案例3:列出所有已安装的软件包

yum list installed
4.3 更新与升级

更新所有可升级的软件包

yum update -y

注意yum updateyum upgrade在默认配置下功能类似。细微差别在于update更保守(根据/etc/yum.conf中的obsoletes设置决定是否替换废弃包),而upgrade行为更激进。生产环境建议使用yum update

4.4 软件包卸载

卸载vsftpd(FTP服务器)

yum remove vsftpd
4.5 使用软件包组

软件包组将一系列功能相关的软件打包,方便一次性安装。 案例:安装“Development Tools”开发工具组 该组包含gcc, make, git等编译和开发所需的基础工具。

# 首先查看可用的包组
yum grouplist

# 安装“开发工具”组
yum groupinstall "Development Tools" -y

这对于搭建自动化测试或CI/CD环境时快速部署编译基础非常有用。

五、总结

yum是CentOS/RHEL系列Linux系统中最核心的包管理工具,掌握其源配置、安装、更新、查询和组管理功能,是系统管理和运维工作的基础。尽管在新版本系统中它正逐渐被DNF替代,但其基本操作逻辑和思想依然通用。合理利用本地源和高速网络源,可以确保在各类环境下都能高效、稳定地完成软件部署工作。




上一篇:深入解析Linux I3C驱动:从改进I2C到实战传感器开发
下一篇:MQTT轻量级客户端 mqtt-client-tiny 源码解析与多平台移植实战
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-10 21:08 , Processed in 0.097961 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表