Skip to content
Search Fedora

This page uses Chinese content. Search opens the Chinese documentation.

    Browse this documentation

    Fedora 仓库与 dnf5

    This content is not available in your language yet.

    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 换成你的组合,就能核对镜像是否可用:

    MirrorRepository root
    Official mirror list (metalink)https://mirrors.fedoraproject.org
    Fedora primaryhttps://dl.fedoraproject.org/pub/fedora/linux
    Official downloadhttps://download.fedoraproject.org/pub/fedora/linux

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