Skip to content
Search RHEL

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

    Browse this documentation

    RHEL 10 采用评估:九项先核对的事实

    This content is not available in your language yet.

    “RHEL 10 能不能上”通常不是一个是非题,而是九个具体事实:内核、init、网络、包管理、语言运行时、TLS、容器、校验级。先把它们在你的镜像上核对一遍,再谈迁移。

    在 PVE 390 rhel10-lab(RHEL 10.2 x86_64,cloud image 最小安装)上执行:

    Terminal window
    cat /etc/redhat-release
    uname -r
    systemctl --version | head -1
    NetworkManager --version
    nft --version
    rpm -q iptables
    python3 --version; ls /usr/bin/python3*
    openssl version; update-crypto-policies --show
    podman --version; rpm -q docker
    dnf --version; rpm --eval '%{_pkgverify_level}'

    E3 记录:plans/content-expansion/evidence/rhel/rhel-adoption-checklist/run.json(13 步,含每步输出 sha256)。

    项目RHEL 10.2 实测迁移影响
    内核6.12.0-211.7.3.el10_2驱动/文件系统/内核模块需按 6.12 重验
    initsystemd 257unit 语法、systemctl 行为按 257 核对
    网络NetworkManager 1.56.0nmcli/keyfile 为唯一主路径
    防火墙nftables 1.1.5;iptables 包未装规则改用 nft,别假设 iptables 存在
    Python3.12.13,仅 python3.12依赖 3.9/3.11 的脚本/ wheel 需重建
    TLSOpenSSL 3.5.5,策略 DEFAULT旧算法、SHA-1 证书链需验证
    容器Podman 5.8.2;docker 未装按 Podman/CRI-O 评估,不默认 docker
    包管理DNF 4.20.0(非 dnf5)4.x 语法继续有效;模块/filelists/debug 有变化
    校验级_pkgverify_level=digest包校验与签名策略按 digest 级核对
    $ python3 --version
    Python 3.12.13
    $ ls /usr/bin/python3*
    /usr/bin/python3 /usr/bin/python3.12

    没有 python3.9/python3.11。依赖 C 扩展的 wheel、distutils 移除、imp 移除等 3.12 变化都会在迁移时暴露;先在 3.12 下跑一遍测试集。

    nftables 是默认,iptables 不保证存在

    Section titled “nftables 是默认,iptables 不保证存在”
    $ nft --version
    nftables v1.1.5
    $ rpm -q iptables
    package iptables is not installed

    最小 cloud image 没有 iptables 包。把“iptables -L 能跑”当成前提的脚本/文档要改;需要兼容层时显式安装并验证 iptables-nft。

    $ openssl version
    OpenSSL 3.5.5
    $ update-crypto-policies --show
    DEFAULT
    $ rpm --eval '%{_pkgverify_level}'
    digest

    TLS 1.0/1.1、SHA-1 签名、弱 DH 参数在 DEFAULT 策略下会被拒;迁移前用真实证书链做一次握手测试,而不是只看 openssl version。

    $ podman --version
    podman version 5.8.2
    $ rpm -q docker
    package docker is not installed

    容器编排、镜像构建、rootless 行为都按 Podman 5.x 评估;docker CLI 需要额外装,且不是红帽支持栈的默认路径。

    DNF 4.20.0,不是 dnf5。模块弃用、filelists 默认不下载、debug 插件移除这三项,单独见 RHEL 10 的 DNF 行为变化;本页不重复。

    本页没有 RHEL 9.8 的对照数据(9.8 镜像尚未就绪),所以不做“9→10 版本差”的断言。迁移评估时至少补三组对照:

    • 9.8 与 10.2 的 python3、openssl、systemd、NetworkManager 版本;
    • 9.8 的 iptables/nftables 默认;
    • 9.8 的 DNF 行为(模块、filelists、debug 插件)。
    1. 在目标镜像上跑完上面 13 条命令,留输出;
    2. 把 Python 依赖在 3.12 下重建并跑测试;
    3. 把 iptables 规则翻译成 nft,或显式安装兼容层;
    4. 用真实证书链验证 TLS/签名;
    5. 按 Podman 5.x 重验容器构建与运行,不假设 docker。
    • 未测试 RHEL 9.8 对照(镜像尚未就绪);
    • 未测试 GCC/开发工具链(cloud image 未装 gcc);
    • 未测试 firewalld 默认区域与 nftables 后端;
    • 未测试 FIPS 模式下的 OpenSSL 3.5 行为;
    • 未测试 Podman 5.8 的 rootless/Quadlet 细节。