详细的Linux系统更新yum源的教程
详细的Linux系统更新yum源的教程
一、准备工作
-
确认系统版本
# 查看系统版本 cat /etc/redhat-release # 或 cat /etc/centos-release
-
安装必要工具(如果没有wget)
sudo yum install -y wget
二、详细更换步骤(以CentOS为例)
这里推荐使用阿里镜像源或者华为镜像源
阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
华为开源镜像站_软件开发服务_华为云
镜像网站都有更详细的指导。
方案1:更换为阿里云yum源(推荐)
-
备份原有源
# 备份基础源 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak# 备份epel源(如果存在) if [ -f /etc/yum.repos.d/epel.repo ]; thensudo mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak fi
-
下载对应版本的阿里云源
# CentOS 6 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo# CentOS 7 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# CentOS 8 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
-
下载epel源(扩展源)
# CentOS 7 sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# CentOS 8 sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-8.repo
方案2:更换为网易163源
-
备份原有源(同上步骤1)
-
下载网易源
# CentOS 7 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo# CentOS 6 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
三、清理与重建缓存
-
清理所有缓存
sudo yum clean all
-
重建缓存(这一步可能需要几分钟)
sudo yum makecache
-
查看可用的yum源
yum repolist enabled
四、测试与更新
-
测试yum源是否正常工作
yum list | grep nginx # 随便查询一个软件包
-
系统更新(可选)
# 升级所有软件包 sudo yum update -y# 只升级指定软件包(例如升级nginx) sudo yum update -y nginx
五、常见问题解决
-
如果出现"Could not retrieve mirrorlist"错误
# 检查网络连接 ping mirrors.aliyun.com# 检查DNS设置 cat /etc/resolv.conf # 如果DNS有问题,可以添加阿里云DNS sudo echo "nameserver 223.5.5.5" >> /etc/resolv.conf sudo echo "nameserver 223.6.6.6" >> /etc/resolv.conf
-
如果CentOS 8提示"Error: Failed to download metadata for repo ‘appstream’"
# CentOS 8已经停止维护,需要更换为vault源 sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
-
手动编辑源文件(如果自动下载失败)
sudo vi /etc/yum.repos.d/CentOS-Base.repo # 手动替换所有mirror.centos.org为对应的镜像地址
完成以上步骤后,你的yum源就更新完成了,后续使用yum安装软件会从新的镜像源下载,速度会更快更稳定。
这个问题问得很关键,能帮你理清Linux软件源的核心区别。简单说,yum源是系统基础软件的“官方仓库”,而epel源是官方源的“扩展仓库”,专门提供官方源里没有的实用软件。
yum源跟epel源的区别
一、先明确:什么是yum源?
yum源(Yellowdog Updater Modified)是RHEL/CentOS系统默认的软件仓库,本质是一个存储了大量RPM软件包及依赖关系的服务器集群。
它的核心特点的是:
- 官方维护:由Red Hat(RHEL)或CentOS官方团队筛选、编译和维护,安全性和稳定性极高。
- 基础核心:只包含系统运行必需的基础软件,比如
gcc
(编译器)、vim
(编辑器)、nginx
(基础版本)、python
(系统默认版本)等,满足系统日常运维的“刚需”。 - 与系统强绑定:软件版本通常与系统版本匹配(如CentOS 7的yum源只提供适配CentOS 7的软件),避免版本冲突导致系统故障。
二、epel源:yum源的“补充包”
epel(Extra Packages for Enterprise Linux)是由Fedora社区发起的开源项目,专门为RHEL/CentOS等企业级Linux系统提供“扩展软件”,相当于给yum源“扩容”。
1. epel源主要涵盖的内容
epel源的软件聚焦“官方源没有,但用户常用”的场景,核心类别包括:
- 运维工具类:比如
htop
(增强版进程管理工具)、iftop
(网络流量监控工具)、nmon
(系统资源监控工具)等,这些工具比官方源的基础工具功能更丰富。 - 开发辅助类:比如
python3-pip
(Python包管理工具,CentOS 7官方源默认没有)、nodejs
(新版本Node.js,官方源版本通常较旧)、git
(较新版本Git,官方源版本可能滞后)。 - 服务组件类:比如
redis
(新版本Redis缓存)、mongodb
(MongoDB数据库)、certbot
(Let’s Encrypt证书自动申请工具)等,这些软件官方源要么没有,要么版本过旧无法满足业务需求。 - 轻量应用类:比如
aria2
(多线程下载工具)、ffmpeg
(音视频处理工具)、syncthing
(文件同步工具)等,满足日常使用的“个性化需求”。
它的核心特点是:
- 社区维护:由Fedora社区志愿者开发,开源免费,更新频率比官方yum源高。
- 兼容性强:严格适配RHEL/CentOS版本,不会与官方yum源的软件冲突(安装时会自动处理依赖)。
- 非“必需”但“实用”:没有epel源,系统能正常运行;但有了epel源,能大幅提升运维和开发效率。
三、epel源与yum源的核心区别
用表格对比会更清晰:
对比维度 | yum源(官方基础源) | epel源(扩展源) |
---|---|---|
维护主体 | RHEL/CentOS官方团队 | Fedora社区(开源项目) |
软件范围 | 系统基础软件(刚需) | 官方源没有的扩展软件(实用工具) |
软件版本 | 稳定但偏旧(优先保证系统兼容性) | 较新(跟进软件官方更新) |
安全性 | 极高(官方严格测试) | 高(社区审核,无恶意软件) |
依赖关系 | 只依赖官方源内部软件 | 可依赖官方源软件,不产生冲突 |
默认状态 | 系统默认启用 | 需手动安装启用(yum install epel-release ) |
四、实际使用场景:什么时候需要epel源?
- 当你用
yum install xxx
安装软件时,提示“No package xxx available”(没有这个软件),比如安装htop
或certbot
; - 当官方源的软件版本太旧,无法满足需求,比如CentOS 7官方源的Python是2.7,而你需要Python 3.8+;
- 当你需要一些运维/开发的“小工具”,这些工具不在官方源的“基础软件清单”里。