作为Linux新手,你是否也曾遇到过这些烦恼?
用yum安装软件时,速度慢到崩溃,甚至频繁报错“无法下载”;
分不清yum和dnf的区别,不知道该用哪个命令;
更换国内源时,跟着教程操作却越改越乱,导致软件无法安装;
想安装某个软件,却不知道它的包名,无从下手……
其实,yum和dnf是Linux(红帽系:CentOS、Anolis OS、RHEL等)最核心的软件包管理工具,而国内源配置,是解决下载慢、报错的关键。学会它们,就能轻松搞定Linux软件的“安装、卸载、更新”,再也不用为“装软件”发愁。
本文将从新手视角出发,先分清yum和dnf的区别,再手把手教你两者的核心用法,最后详细讲解国内源(阿里云、华为云)的配置步骤,搭配实操案例和避坑技巧,新手跟着敲一遍就能掌握,全程无晦涩术语,复制命令就能执行。
前置说明
- 本文实操适配 CentOS 7/8、Anolis OS 7/8、RHEL 7/8,CentOS 7 默认用yum,CentOS 8 默认用dnf(yum已作为dnf的软链接);
- 所有命令均需
root 权限(或 sudo 提权),普通用户执行会提示权限不足; - 更换国内源前,建议先备份默认源文件,避免配置错误导致无法恢复;
- 文中所有代码块均标注“可直接复制”,实操时注意替换占位符(如软件包名),避免误操作;
- 若使用Ubuntu/Debian系统,本文内容不适用(Ubuntu用apt命令),后续会单独讲解apt用法。
一、先分清:yum 和 dnf 到底有什么区别?
很多新手会混淆yum和dnf,其实它们本质是“升级关系”,核心功能一致,只是性能和体验有差异,一张表就能分清(建议重点理解):
| | | | |
|---|
| | | CentOS 7、Anolis OS 7、RHEL 7 | |
| | | CentOS 8、Anolis OS 8、RHEL 8+ | |
关键补充
- CentOS 8 及以上版本,系统默认安装dnf,同时保留了yum命令(yum是dnf的软链接),执行
yum install xxx 本质就是执行 dnf install xxx; - 两者命令用法几乎完全一致,学会一个,另一个就能无缝上手;
- 日常使用中,dnf的体验更好(下载快、不易报错),推荐优先使用dnf;若系统只有yum(如CentOS 7),用yum即可。
新手口诀
yum老,dnf新,用法一致不区分;
7用yum,8用dnf,国内源配好更省心。
二、核心用法:yum/dnf 常用命令
yum和dnf的命令格式完全一致,下面以dnf为例(yum直接替换命令名即可),讲解最常用、最实用的命令,所有命令可直接复制执行,新手重点掌握前5个。
2.1 基础命令(必背,日常高频)
# 1. 查看软件包是否安装(最常用,排查软件是否安装)dnf list installed 软件包名# 示例:查看nginx是否安装dnf list installed nginx# 2. 安装软件包(核心命令,默认安装最新版本)dnf install 软件包名 -y# 解读:-y 表示自动确认安装,无需手动输入y,避免反复确认# 示例:安装nginx(自动确认)dnf install nginx -y# 3. 卸载软件包(彻底卸载,包括依赖)dnf remove 软件包名 -y# 示例:卸载nginxdnf remove nginx -y# 4. 更新软件包(单个软件)dnf update 软件包名 -y# 示例:更新nginx到最新版本dnf update nginx -y# 5. 更新系统所有软件包(谨慎使用,适合测试环境)dnf update -y# 解读:会更新系统所有已安装软件和内核,生产环境建议先测试再执行
2.2 实用进阶命令(提升效率)
# 1. 搜索软件包(不知道包名时用,模糊搜索)dnf search 关键词# 示例:搜索所有包含“nginx”的软件包dnf search nginx# 2. 查看软件包详细信息(了解软件功能、版本、依赖)dnf info 软件包名# 示例:查看nginx的详细信息dnf info nginx# 3. 查看软件包的依赖关系(安装失败时排查依赖)dnf deplist 软件包名# 示例:查看nginx的依赖包dnf deplist nginx# 4. 清理yum/dnf缓存(下载失败、报错时用)dnf clean all# 解读:清理缓存后,会重新从源获取软件包信息,解决部分下载报错# 5. 查看已安装的所有软件包dnf list installed# 6. 查看可更新的软件包列表dnf check-update
2.3 yum 与 dnf 命令对比(直接替换即可)
实用技巧 & 避坑点
✅ 技巧1:安装软件时,加上 -y 参数,避免每次都要手动输入y确认,提升效率;
✅ 技巧2:忘记软件包全名时,用 dnf search 关键词 模糊搜索(如搜“nginx”就能找到nginx包);
❌ 避坑1:生产环境不要随意执行 dnf update -y,可能会更新内核,导致服务重启或兼容性问题;
❌ 避坑2:卸载软件时,确认软件没有被其他服务依赖(如卸载nginx前,先停止nginx服务);
❌ 避坑3:CentOS 7 没有dnf命令,不要强行执行dnf,用yum即可。
三、核心痛点解决:国内源配置(解决下载慢、报错)
为什么要配置国内源?
默认情况下,yum/dnf使用的是国外官方源,服务器在国外,国内用户下载软件时,速度慢、延迟高,甚至会出现“无法连接源”“下载失败”的报错。
国内源(如阿里云、华为云、清华源)是国内厂商同步国外官方源的镜像,服务器在国内,下载速度能提升10倍以上,还能避免连接失败的问题——这是新手必做的配置,也是解决yum/dnf报错的关键。
3.1 国内源选择(新手推荐)
3.2 详细配置步骤(以阿里云源为例,通用)
前置准备:备份默认源(必做,避免配置错误无法恢复)
# 1. 进入yum/dnf源配置目录(所有源文件都在这里)cd /etc/yum.repos.d/# 2. 备份所有默认源文件(创建备份目录,将原文件移动进去)mkdir -p backupmv *.repo backup/
步骤1:下载阿里云源文件(分系统版本)
根据自己的系统版本,选择对应的命令下载,不要选错!
# 场景1:CentOS 7 / Anolis OS 7(用yum的系统)wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 场景2:CentOS 8 / Anolis OS 8(用dnf的系统)wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
补充:如果系统没有wget命令(提示command not found),先执行 dnf install wget -y(或yum install wget -y)安装wget。
步骤2:清理缓存并生成新缓存
配置完源后,必须清理旧缓存,生成新的缓存(让系统识别新的国内源):
# 清理旧缓存dnf clean all# 生成新缓存(从国内源获取软件包信息)dnf makecache# 解读:makecache会耗时1-3分钟,取决于网络速度,耐心等待即可
步骤3:验证国内源是否配置成功
执行以下命令,若能快速列出可安装的软件包,且无报错,说明配置成功:
# 搜索nginx软件包,测试国内源速度dnf search nginx
3.3 华为云源配置(备选,阿里云源报错时用)
如果阿里云源配置后报错,可尝试华为云源,步骤类似:
# 1. 进入源配置目录(已备份默认源可跳过此步)cd /etc/yum.repos.d/mkdir -p backupmv *.repo backup/# 2. 下载华为云源文件(CentOS 7/8通用)wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repo/CentOS-Base.repo# 3. 清理缓存并生成新缓存dnf clean alldnf makecache
实用技巧 & 避坑点
✅ 技巧1:配置国内源后,若下载速度依然慢,可尝试更换其他国内源(如阿里云换华为云);
✅ 技巧2:若执行 wget 下载源文件失败,可直接打开源文件链接,复制内容,手动创建 .repo 文件;
❌ 避坑1:配置前必须备份默认源,一旦配置错误,可恢复备份文件(mv backup/*.repo /etc/yum.repos.d/);
❌ 避坑2:不要混合使用多个国内源(如同时配置阿里云和华为云),可能导致软件包冲突;
❌ 避坑3:下载源文件时,一定要对应自己的系统版本(CentOS 7/8),选错会导致无法使用。
四、常见问题与避坑指南
1. 安装软件时提示“No package xxx available”(找不到软件包)
- 原因1:软件包名错误(比如把nginx写成ngix);
- 原因3:软件包不在默认源中,需要添加额外的epel源;
- 用
dnf search 关键词 确认正确的软件包名; - 重新配置国内源,执行
dnf clean all && dnf makecache; - 安装epel源(扩展源,包含更多软件包):
dnf install epel-release -y
2. 下载软件时速度慢、频繁报错“Could not resolve host”
- 检查网络(
ping www.baidu.com 能通说明网络正常); - 清理缓存后重试(
dnf clean all && dnf makecache)。
3. 执行dnf命令提示“bash: dnf: command not found”
- 原因:系统版本是CentOS 7(默认只有yum,没有dnf);
- 解决方法:将所有dnf命令替换为yum命令(如
yum install nginx -y)。
4. 安装软件时提示“依赖冲突”
- 用
dnf deplist 软件包名 查看依赖关系; - 卸载冲突的软件包(
dnf remove 冲突包名 -y),再重新安装; - 若无法卸载冲突包(被其他服务依赖),可尝试用
dnf install 软件包名 --skip-broken 跳过冲突依赖(谨慎使用)。
5. 配置国内源后,依然无法下载软件
- 检查源文件权限(
ls -l /etc/yum.repos.d/*.repo,确保权限为644);
五、常用命令速查表(建议收藏,日常直接查)
# 基础操作(yum/dnf通用,替换命令名即可)dnf install 包名 -y # 安装软件(自动确认)dnf remove 包名 -y # 卸载软件dnf update 包名 -y # 更新单个软件dnf update -y # 更新所有软件(谨慎使用)dnf search 关键词 # 模糊搜索软件包dnf list installed 包名 # 查看软件是否安装dnf info 包名 # 查看软件详细信息dnf clean all # 清理缓存dnf makecache # 生成新缓存# 国内源配置(阿里云)cd /etc/yum.repos.d/ # 进入源配置目录mkdir -p backup # 创建备份目录mv *.repo backup/ # 备份默认源# CentOS 7/Anolis 7 下载阿里云源wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# CentOS 8/Anolis 8 下载阿里云源wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repodnf clean all && dnf makecache # 清理缓存并生成新缓存# 扩展操作dnf install epel-release -y # 安装epel扩展源dnf deplist 包名 # 查看软件依赖关系
六、总结
- yum和dnf是红帽系Linux(CentOS、Anolis OS等)的核心软件包管理工具,dnf是yum的升级版本,用法完全一致,CentOS 7用yum,CentOS 8+用dnf;
- 核心命令:安装(install)、卸载(remove)、更新(update)、搜索(search),记住这4个,就能应对日常80%的软件操作;
- 国内源配置是解决下载慢、报错的关键,新手优先配置阿里云源,配置前务必备份默认源,避免配置错误;
- 常见坑:软件包名错误、国内源配置错误、依赖冲突,遇到问题先排查这3点,再结合本文的解决方法处理;
- 实操核心原则:先备份,再操作;新手建议在虚拟机测试环境练习,避免在生产环境误操作。
学会yum/dnf的用法和国内源配置,就能彻底解决Linux“装软件”的烦恼,不管是日常学习还是服务器运维,这都是必备技能。建议多动手实操文中的命令和配置步骤,加深记忆,把这些操作变成自己的“肌肉记忆”~
如果你觉得本文对你有帮助,欢迎点赞、收藏、转发,关注我,后续会分享更多Linux入门干货!
如
如果你觉得本文对你有帮助,欢迎点赞、收藏、转发,关注我,后续会分享更多Linux入门干货!
文 / 零距技术仓记录每一次真实的折腾 (#^.^#)🚀 想看到更多实用折腾技巧?👉 先关注💬 评论区说说你的经历或想看的内容👍 点赞表示支持🔁 顺手分享给也在折腾的人,让大家都少踩坑 😎