dnf config-manager使用
dnf config-manager 是 DNF(Dandified YUM) 的一个插件工具,用来管理软件仓库(repo)配置,相当于给 /etc/yum.repos.d/*.repo 提供一套命令行开关与编辑接口,避免手工改文件。
常见于 RHEL / Rocky / AlmaLinux / Fedora 等系统。
一、确认是否安装
有些系统默认没有插件:
1 | dnf install dnf-plugins-core |
安装后即可使用:
1 | dnf config-manager |
二、常见用法
1)查看已启用仓库
1 | # enabled = 1 |
或查看全部:
1 | dnf repolist all |
2)启用仓库
例如启用 epel:
1 | dnf config-manager --set-enabled epel |
等价于修改:
1 | enabled=1 |
3)禁用仓库
1 | dnf config-manager --set-disabled epel |
等价于:
1 | enabled=0 |
4)添加新仓库
最常用的添加仓库
直接从 URL 添加:
1 | dnf config-manager --add-repo https://example.com/repo.repo |
会自动下载 repo 文件到:
/etc/yum.repos.d/
5)修改仓库参数
例如修改 baseurl:
1 | dnf config-manager --setopt=epel.baseurl=http://mirror.example.com |
修改后写入 repo 文件。
6)为所有仓库设置参数
例如关闭 gpgcheck:
1 | dnf config-manager --setopt=*.gpgcheck=0 |
三、运维场景示例
场景1:临时切换镜像源
1 | dnf config-manager --setopt=baseos.baseurl=http://mirrors.aliyun.com/... |
场景2:禁用慢源
1 | dnf config-manager --set-disabled appstream |
场景3:只启用一个仓库
1 | dnf config-manager --set-disabled '*' |
四、底层发生了什么?
执行:
1 | dnf config-manager --set-enabled epel |
本质修改:
1 | /etc/yum.repos.d/epel.repo |
从:
1 | enabled=0 |
变为:
1 | enabled=1 |
只是自动化编辑。
五、生产环境常见坑
坑1:repo 名称不等于文件名
例如:
epel.repo
里面可能有:
1 | [epel] # 定义的仓库名字 |
启用时要用 section 名:
1 | dnf config-manager --set-enabled epel |
不是文件名。
坑2:缓存未刷新
改完 repo 后建议:
1 | dnf clean all && dnf makecache |
六、进阶用法
查询 repo 文件位置
1 | dnf config-manager --dump epel |
查看所有配置
1 | dnf config-manager --dump |