F45 仓库配置迁到 /usr:路径、GPG 与覆盖文件
Fedora 45 把发行版自带的仓库配置从 /etc/yum.repos.d 移到 /usr/share/dnf5/repos.d,仓库的 GPG 公钥也从 /etc/pki/rpm-gpg 移到 /usr/share/pki/rpm-gpg(官方变更提案 RelocateRpmRepoConfigsToUsr)。
这不是「Fedora 不用 /etc 了」——搬走的只有由包管理的那部分。下面每一段都附了 F45 上的实际输出。
迁移后长什么样
Section titled “迁移后长什么样”ls /usr/share/dnf5/repos.d/ls /etc/yum.repos.d/ls /usr/share/pki/rpm-gpg/ | head -3fedora-cisco-openh264.repofedora.repofedora-updates.repofedora-updates-testing.repo(/etc/yum.repos.d/ 为空)RPM-GPG-KEY-45-fedoraRPM-GPG-KEY-fedora-10-i386RPM-GPG-KEY-fedora-10-ppc/etc/yum.repos.d/ 是空目录,不是目录不存在——这是升级后最容易误判的一点。
| 位置 | 归谁管 | 能不能手改 | 升级时 |
|---|---|---|---|
/usr/share/dnf5/repos.d/*.repo | fedora-repos 包 | 不能 | 会被覆盖 |
/etc/yum.repos.d/*.repo | 你 | 可以 | 保留 |
/etc/dnf/repos.override.d/*.repo | config-manager | 不能(文件头会写警告) | 保留 |
确认归属:
rpm -qf /usr/share/dnf5/repos.d/fedora.repofedora-repos-45-0.6.noarch只要 rpm -qf 能报出包名,这个文件就不该手改。
启停自带仓库:用覆盖文件
Section titled “启停自带仓库:用覆盖文件”想关掉一个自带仓库(比如 updates-testing),不要去改 /usr 下的文件:
sudo dnf config-manager setopt updates-testing.enabled=0它写的是这个文件:
sudo cat /etc/dnf/repos.override.d/99-config_manager.repo# Generated by libdnf5.# Do not modify this file manually, use dnf5 config-manager instead.[updates-testing]enabled=0验证生效:
sudo dnf repolist | grep -c updates-testing # 0一次性覆盖:--setopt
Section titled “一次性覆盖:--setopt”只对当次命令生效的写法,不落盘:
sudo dnf repolist --setopt updates-testing.enabled=1 | grep -c updates-testing # 1区别记住一句话:--setopt 是运行时开关,config-manager setopt 是持久化。
自定义与第三方仓库
Section titled “自定义与第三方仓库”自己加的仓库仍然放 /etc/yum.repos.d/。F45 上实测:把一个测试 .repo 放进该目录,dnf 照常识别——所以「F45 不再用 /etc」的说法是错的。
config-manager addrepo 也把文件放这里:
sudo dnf config-manager addrepo --from-repofile=https://example.com/example.repols /etc/yum.repos.d/与升级、删除的关系
Section titled “与升级、删除的关系”- 升级后
/etc/yum.repos.d/变空:不是仓库丢了,是自带仓库搬家了;用dnf repolist确认仓库都在。 - 删除:
rm /etc/yum.repos.d/x.repo只对自定义仓库有效;删/usr下的文件既不生效,也会被下次升级还原。 - 脚本里写死路径:把
/etc/yum.repos.d/fedora.repo当固定路径的备份脚本、配置管理模板,在 F45 上会失效。
仓库突然「不见了」时,按这个顺序查:
dnf repolist—— 仓库是否在列表里;ls /usr/share/dnf5/repos.d—— 自带仓库文件是否在;ls /etc/dnf/repos.override.d/—— 有没有覆盖文件把它关了;dnf repoinfo <id>—— 该仓库的enabled与gpgcheck实际值。
- COPR 第三方仓库 — 它仍然写在 /etc/yum.repos.d
- 报错速查 — 仓库与签名报错原文
- Fedora 45:变化、下载与升级入口 — 六项变化总览
- Fedora 仓库与 dnf5 — 完整仓库操作
- 强制签名校验 —
gpgcheck失败时会发生什么 - 升级到 Fedora 45 — 升级后核对
- 官方:F45 Change Proposal: RelocateRpmRepoConfigsToUsr