跳转到内容
搜索 RHEL 文档

    浏览当前文档目录

    RHEL 10 版本停留:release pin 与 EUS 仓库

    “版本停留”在 RHEL 上不是一条命令,而是三件事的组合:客户端锁定 minor、启用对应 EUS 仓库、按订阅档位确认 entitlement。三者错配时,最常见的结果不是报错,而是 404。

    在 PVE 390 rhel10-lab(RHEL 10.2 x86_64,已注册开发者订阅)上实际执行:

    Terminal window
    sudo subscription-manager release --list
    sudo subscription-manager release --set=10.1
    sudo subscription-manager release
    sudo dnf repolist -v | head
    sudo subscription-manager release --set=10.2
    sudo subscription-manager repos \
    --enable rhel-10-for-x86_64-baseos-eus-rpms \
    --enable rhel-10-for-x86_64-appstream-eus-rpms
    sudo dnf -q makecache
    sudo dnf repolist -v | grep -A1 eus

    E3 记录:plans/content-expansion/evidence/rhel/rhel-eus-pinning/run.json(8 步,含退出码与输出 sha256)。

    机制作用不做什么
    subscription-manager release --set把客户端的 $releasever 固定到某个 minor不增加 entitlement、不保证该 minor 有内容
    EUS 仓库提供某个 EUS minor 的持续更新不覆盖所有 minor;未启用的仓库不参与解析
    versionlock把单个包钉在 NEVRA不提供旧版本来源(见 包回滚)

    release pin:改的是客户端的 releasever

    Section titled “release pin:改的是客户端的 releasever”
    $ sudo subscription-manager release --list
    Available Releases
    ----------------------------------------
    10
    10.0
    10.1
    10.2
    $ sudo subscription-manager release --set=10.1
    Release set to: 10.1
    $ sudo subscription-manager release
    Release: 10.1

    标准仓库的基址随之变化:

    https://cdn.redhat.com/content/dist/rhel10/10.1/x86_64/baseos/os

    回退到最新 minor:

    Terminal window
    sudo subscription-manager release --set=10.2
    # 或取消锁定
    sudo subscription-manager release --unset

    EUS 仓库在 subscription-manager repos --list 里可见,但默认未启用。启用:

    Terminal window
    sudo subscription-manager repos \
    --enable rhel-10-for-x86_64-baseos-eus-rpms \
    --enable rhel-10-for-x86_64-appstream-eus-rpms
    sudo dnf -q makecache

    实测基址:

    Repo-id : rhel-10-for-x86_64-baseos-eus-rpms
    Repo-baseurl : https://cdn.redhat.com/content/eus/rhel10/10.2/x86_64/baseos/os
    Repo-id : rhel-10-for-x86_64-appstream-eus-rpms
    Repo-baseurl : https://cdn.redhat.com/content/eus/rhel10/10.2/x86_64/appstream/os

    实测坑:10.1 release + EUS 仓库 = 404

    Section titled “实测坑:10.1 release + EUS 仓库 = 404”

    把 release 设回 10.1、EUS 仓库保持启用,dnf repolist -v 会去取:

    https://cdn.redhat.com/content/eus/rhel10/10.1/x86_64/appstream/os/repodata/repomd.xml
    Status code: 404

    原因:EUS 内容只覆盖对应的 EUS minor(本实验是 10.2),10.1 没有 EUS 基址。正确做法二选一:

    • 停在 EUS minor(10.2),release 与 EUS 仓库一致;
    • 停在非 EUS minor(10.1)时,先禁用 EUS 仓库,只走标准仓库。
    Terminal window
    sudo subscription-manager repos \
    --disable rhel-10-for-x86_64-baseos-eus-rpms \
    --disable rhel-10-for-x86_64-appstream-eus-rpms
    1. subscription-manager release 确认当前 minor;
    2. subscription-manager repos --list-enabled 确认 EUS 仓库是否启用;
    3. dnf repolist -v 看基址里的 dist/eus 与 minor 是否匹配;
    4. dnf makecache 成功后再谈“已停留”;
    5. 出问题按相反顺序回退:先 release --set 回原 minor,再决定是否禁用 EUS。
    • release --set 不增加 entitlement;EUS/ELCP 是否可用取决于订阅档位与合同,生产前用 subscription-manager status 与控制台核对;
    • 本实验的开发者订阅恰好能看到 EUS 仓库,不代表所有订阅都有;
    • 未测试 ELCP 的末位 minor 停留、EUS 到期后的 ELS 路径;
    • 未测试 Satellite 内容视图下的 release 固定(由 Satellite 侧生命周期环境决定)。