跳转到内容
搜索 Fedora 文档

    浏览当前文档目录

    Fedora 仓库与 dnf5

    Fedora 的仓库体系不复杂,但官方仓库与第三方仓库的边界必须先划清:官方文档把第三方软件单独成节,各有各的启用步骤;混着配,出问题时你连「这个包是谁维护的」都答不上来。

    默认仓库:fedora / updates / updates-testing / rawhide

    Section titled “默认仓库:fedora / updates / updates-testing / rawhide”

    官方文档把官方仓库与第三方软件分开说明:RPM Fusion、Flathub、Snap、AppImage、源码安装单列在 Third Party Software 小节,各有自己的启用步骤。

    一个正常安装的 Fedora,仓库按用途分四类。官方仓库说明页对每一类都有逐条描述,对应的 .repo 文件分别是:

    仓库对应的 .repo 文件定位
    fedorafedora.repo该版本发布时的稳定内容
    updatesfedora-updates.repo稳定版的更新流,对已发布版本默认启用,通常应保持启用
    updates-testingfedora-updates-testing.repo进入稳定前的暂存区(update candidates)
    rawhidefedora-rawhide.repoRawhide 上的唯一仓库:跑 Rawhide 的系统应启用,其它系统不应启用

    表中的仓库名与 .repo 文件名取自官方 Fedora DNF repositories 页面(docs.fedoraproject.org);仓库内容随版本演进,长期引用前回官方页面确认。

    官方 Quick Docs 的《Adding or removing software repositories in Fedora》给出 dnf config-manager 的 addrepo / setopt 用法,以及删除 /etc/yum.repos.d 下 .repo 文件的做法。 三类动作对应三类命令:

    Terminal window
    # 添加:先把 .repo 文件写到临时位置,再交给 config-manager
    sudo dnf config-manager addrepo --from-repofile=/tmp/example.repo
    # 启用 / 禁用:按仓库 ID 改 enabled
    sudo dnf config-manager setopt example.enabled=1
    sudo dnf config-manager setopt example.enabled=0
    # 移除:先确认仓库 ID 属于哪个文件,再删文件
    grep -E "^\[.*]" /etc/yum.repos.d/*
    sudo rm /etc/yum.repos.d/example.repo

    RPM Fusion 自身的配置页给出启用命令:以 rpm -E %fedora 拼出 free 与 nonfree 两个 release 包,再用 dnf install 安装。

    Terminal window
    sudo dnf install \
    https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
    https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

    RPM Fusion 只是官方「Third Party Software」小节里的一项,同一节还有 Flathub、Snap Store、AppImage 与源码安装——每一项都有自己的启用步骤,不要拿「装一个 release 包」的经验去套其它源。

    RPM Fusion 的配置页里还有一个典型的写法差异:启用 fedora-cisco-openh264 仓库,Fedora 41 及以后用 sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1,Fedora 40 及以前用 sudo dnf config-manager --enable fedora-cisco-openh264。同一个动作,两代 dnf 是两种写法;完整差异与迁移路径见从 dnf 迁到 dnf5 的实操差异。

    上面用到的 addrepo --from-repofile= 与 setopt <repo>.enabled=1|0 就是 dnf5 的写法,官方 Quick Docs 的仓库页已经按新写法给出示例。习惯 --enable / --disable 一类旧参数的脚本,在仓库管理这一块要改写;只改 sed 替换是不够的,因为参数形态从「开关选项」变成了「键值设置」。

    官方仓库的包来自官方镜像网络,而不是写死某一个站点。官方仓库说明页给出的查询形式形如 https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f44&arch=x86_64——把 repo 与 arch 换成你的组合,就能核对镜像是否可用:

    镜像仓库根地址
    官方镜像列表(metalink)https://mirrors.fedoraproject.org
    Fedora 官方主站https://dl.fedoraproject.org/pub/fedora/linux
    官方下载入口https://download.fedoraproject.org/pub/fedora/linux

    表中地址取自 src/data/distro-profiles.json 的 fedora 档案(登记并逐条挂证据);镜像网络会调整,长期引用前回官方页面确认。