详细的Linux系统更新yum源的教程

详细的Linux系统更新yum源的教程

一、准备工作

  1. 确认系统版本

    bash 复制代码
    # 查看系统版本
    cat /etc/redhat-release
    # 或
    cat /etc/centos-release
  2. 安装必要工具(如果没有wget)

    bash 复制代码
    sudo yum install -y wget

二、详细更换步骤(以CentOS为例)

这里推荐使用阿里镜像源或者华为镜像源
阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
华为开源镜像站_软件开发服务_华为云

镜像网站都有更详细的指导。

方案1:更换为阿里云yum源(推荐)
  1. 备份原有源

    bash 复制代码
    # 备份基础源
    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 ]; then
        sudo mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak
    fi
  2. 下载对应版本的阿里云源

    bash 复制代码
    # 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
  3. 下载epel源(扩展源)

    bash 复制代码
    # 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. 备份原有源(同上步骤1)

  2. 下载网易源

    bash 复制代码
    # 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

三、清理与重建缓存

  1. 清理所有缓存

    bash 复制代码
    sudo yum clean all
  2. 重建缓存(这一步可能需要几分钟)

    bash 复制代码
    sudo yum makecache
  3. 查看可用的yum源

    bash 复制代码
    yum repolist enabled

四、测试与更新

  1. 测试yum源是否正常工作

    bash 复制代码
    yum list | grep nginx  # 随便查询一个软件包
  2. 系统更新(可选)

    bash 复制代码
    # 升级所有软件包
    sudo yum update -y
    
    # 只升级指定软件包(例如升级nginx)
    sudo yum update -y nginx

五、常见问题解决

  1. 如果出现"Could not retrieve mirrorlist"错误

    bash 复制代码
    # 检查网络连接
    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
  2. 如果CentOS 8提示"Error: Failed to download metadata for repo 'appstream'"

    bash 复制代码
    # 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-*
  3. 手动编辑源文件(如果自动下载失败)

    bash 复制代码
    sudo vi /etc/yum.repos.d/CentOS-Base.repo
    # 手动替换所有mirror.centos.org为对应的镜像地址

完成以上步骤后,你的yum源就更新完成了,后续使用yum安装软件会从新的镜像源下载,速度会更快更稳定。

可能会有初学者对yum源跟epel源的认识有疑惑,下面再说下两者。

简单说,yum源是系统基础软件的"官方仓库",而epel源是官方源的"扩展仓库",专门提供官方源里没有的实用软件。

yum源跟epel源的区别

一、先明确:什么是yum源?

yum源(Yellowdog Updater Modified)是RHEL/CentOS系统默认的软件仓库,本质是一个存储了大量RPM软件包及依赖关系的服务器集群。

它的核心特点的是:

  1. 官方维护:由Red Hat(RHEL)或CentOS官方团队筛选、编译和维护,安全性和稳定性极高。
  2. 基础核心 :只包含系统运行必需的基础软件,比如gcc(编译器)、vim(编辑器)、nginx(基础版本)、python(系统默认版本)等,满足系统日常运维的"刚需"。
  3. 与系统强绑定:软件版本通常与系统版本匹配(如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 "(没有这个软件),比如安装htopcertbot
  • 当官方源的软件版本太旧,无法满足需求,比如CentOS 7官方源的Python是2.7,而你需要Python 3.8+;
  • 当你需要一些运维/开发的"小工具",这些工具不在官方源的"基础软件清单"里。
相关推荐
tritone16 小时前
在优豆云免费云服务器上初探SSH与SCP的便捷操作
运维·服务器·ssh
lht63193561216 小时前
Ubuntu Server 系统安装图形界面
linux·运维·ubuntu
大美B端工场-B端系统美颜师16 小时前
数字孪生为什么需要5G?低延迟与高可靠实现精准控制
运维·服务器·5g
christine-rr16 小时前
linux常用命令(6)——网络管理
linux·服务器·网络·ubuntu·网络安全
isyangli_blog17 小时前
Linux (CentOS 7.9) vmware 创建与安装
linux·运维·centos
AHUGEFATTY17 小时前
centos离线包获取-附centos7主流离线包资源
linux·运维·centos
tingting011917 小时前
jenkins在使用中遇到的问题
运维·jenkins
hjlgs17 小时前
Kernel5.4 Timer定时器使用
linux
歪歪10017 小时前
在哪些场景下适合使用 v-model 机制?
服务器·前端·javascript·servlet·前端框架·js