首页/系统/信创系统运维速查/dnf config-manager 管理软件源
命令与包管理65 条

dnf config-manager 管理软件源

用命令增删启停仓库:--add-repo 添加、--set-enabled/--set-disabled 开关、--setopt 临时改参数,比手改 .repo 文件更规范。

信创系统运维速查系统更新于 2026-10-13

config-manager 的作用

dnf config-manager 属于 dnf-plugins-core 插件,用来在命令行增删与启停软件仓库,替代手工编辑 /etc/yum.repos.d/ 下的 .repo 文件。--add-repo 按 URL 直接生成仓库文件,--set-enabled 与 --set-disabled 控制开关,--setopt 临时覆盖参数。信创环境把默认外网源换成内网镜像源时,用它最省事也最容易审计。

基本信息

所属包dnf-plugins-core(可能需先安装)
添加源dnf config-manager --add-repo <url>
开关源--set-enabled / --set-disabled <repo-id>
临时改参--setopt=<repo>.<参数>=<值>
配置文件/etc/yum.repos.d/*.repo

典型使用场景

  • 内网隔离环境把默认源换成企业镜像源或本地 ISO 源
  • 按需启用 EPEL、容器运行时等第三方扩展源
  • 排障:多个源里同一包版本冲突时先禁用无关源
  • 合规审计:统一用命令改源,便于记录变更时间与内容
  • 迁移场景:把麒麟与 openEuler 主机的源地址批量替换为内网地址

添加与开关仓库

添加与开关仓库
dnf install -y dnf-plugins-core           # 插件默认可能未装
dnf config-manager --add-repo http://mirror.example.com/euler/repo
dnf repolist --all                        # 查看全部仓库及开关状态
dnf config-manager --set-disabled extras
dnf config-manager --set-enabled epel
dnf config-manager --setopt=epel.gpgcheck=0 --save   # 落盘到源文件
dnf makecache                             # 刷新元数据

排错对照

现象原因处理
Unknown reporepo id 写错用 repolist 显示的 id,不要用文件名
repomd.xml 报 404baseurl 路径不对用 curl 直接访问该地址验证
包版本不符预期启用了多余的源先 --set-disabled '*' 再逐个启用
元数据过期缓存未更新dnf clean all 后 makecache
--add-repo 会在 /etc/yum.repos.d/ 生成以 URL 命名的 .repo 文件,之后改文件与用命令改的是同一份配置,交接时要说明当前以哪种方式维护。

源文件关键字段

字段含义注意事项
baseurl仓库地址,支持变量常用 $releasever 与 $basearch 让一份配置适配多版本
enabled是否启用写 0 表示停用但保留配置
gpgcheck是否校验包签名生产环境保持为 1
priority优先级(需插件支持)数值越小越优先,避免多源拉到错版本
metalink镜像列表地址与 baseurl 二选一,内网多用 baseurl
同一条命令既能做临时验证也能落盘:不带 --save 的 --setopt 只在本次执行里生效,适合先试探参数再正式写入配置。

易错点

  • repo id 与文件名不一一对应,--set-disabled 写文件名会静默不生效,必须用 repolist 里的 id
  • 多个源同时开启时会拉到非预期版本,投产环境先全禁用再按需启用
  • 替换内网源后不清缓存,解析仍走旧元数据,出现找不到包或版本不对
  • gpgcheck=0 只是临时排障手段,长期关闭会让包来源无法验证,排障后应恢复
  • 整体替换源之前先确认内网源可达:外网源删干净而内网源不通时,安装与更新会全部失败

数据来源与参考

  • dnf-plugins-core 文档
  • openEuler 源管理指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌