插件窝 干货文章 怎样设置Yum源优先级

怎样设置Yum源优先级

优先级 Yum priority CentOS 570    来源:    2025-05-04

设置Yum源优先级的方法

在CentOS/RHEL系统中,当有多个Yum源(repository)提供相同软件包时,可以通过设置优先级来控制Yum优先使用哪个源。以下是设置Yum源优先级的详细方法:

方法一:使用priority插件

  1. 安装priority插件

    yum install yum-plugin-priorities
    
  2. 在Yum源配置文件中设置优先级: 编辑/etc/yum.repos.d/目录下的.repo文件,在需要设置优先级的源中添加:

    priority=N
    

    其中N是数字,数字越小优先级越高(1为最高优先级)

    示例:

    [base]
    name=CentOS-$releasever - Base
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    priority=1
    
  3. 验证优先级是否生效

    yum repolist
    

方法二:使用presto插件(更灵活)

  1. 安装presto插件

    yum install yum-plugin-presto
    
  2. 配置优先级: 在/etc/yum/pluginconf.d/priorities.conf中设置:

    [main]
    enabled=1
    check_obsoletes=1
    

注意事项

  1. 优先级数字范围通常是1-99,1为最高优先级
  2. 如果没有设置priority参数,默认优先级是99
  3. 当多个源有相同优先级时,Yum会随机选择一个
  4. 要查看当前各源的优先级,可以使用: bash yum repolist -v

示例场景

假设你有公司内部源和官方源,希望优先使用内部源:

  1. 编辑内部源的.repo文件:

    [company-repo]
    name=Company Repository
    baseurl=http://internal.repo.company.com/centos/$releasever/os/$basearch/
    enabled=1
    gpgcheck=0
    priority=1
    
  2. 编辑官方源的.repo文件:

    [base]
    name=CentOS-$releasever - Base
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    priority=10
    

这样配置后,Yum会优先从公司内部源获取软件包,只有当内部源没有时才从官方源获取。