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 repo | repo id 写错 | 用 repolist 显示的 id,不要用文件名 |
| repomd.xml 报 404 | baseurl 路径不对 | 用 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 只在本次执行里生效,适合先试探参数再正式写入配置。