RHEL 10 AppStream:模块流退场,nodejs 直接 dnf install
RHEL 9 里装 nodejs 常写 dnf module enable nodejs:20 && dnf install nodejs。到 RHEL 10,这套流程不再适用:模块流(modularity)已被标记弃用,AppStream 只剩普通 RPM。
在 PVE 390 rhel10-lab(RHEL 10.2)执行:
dnf module listdnf module list nodejsdnf -q list --available nodejsdnf repoquery --repo=rhel-10-for-x86_64-appstream-rpms | wc -lE3 记录:plans/content-expansion/evidence/rhel/rhel-appstream/run.json(4 步,含 module/package/count)。
先给结论:模块流已退场
Section titled “先给结论:模块流已退场”$ dnf module listWARNING: modularity is deprecated, and functionality will be removed in afuture release of DNF5.(没有任何模块流)
$ dnf module list nodejsError: No matching Modules to listRHEL 10 的 AppStream 不再用“流”区分版本,nodejs 就是普通包。
nodejs 直接装
Section titled “nodejs 直接装”$ dnf -q list --available nodejsAvailable Packagesnodejs.x86_64 1:22.23.2-3.el10_2 rhel-10-for-x86_64-appstream-rpmssudo dnf install -y nodejsnode -v# v22.23.2不需要 module enable,也不存在 nodejs:20/nodejs:22 的流选择。
AppStream 规模
Section titled “AppStream 规模”$ dnf repoquery --repo=rhel-10-for-x86_64-appstream-rpms | wc -l14568AppStream 仍然是二进制、运行时和依赖的主要来源;BaseOS 只放最小系统核心。
从 RHEL 9 迁脚本
Section titled “从 RHEL 9 迁脚本”RHEL 9 常见写法:
dnf module enable nodejs:20 -ydnf install nodejs -y到 RHEL 10 应改为:
dnf install nodejs -y如果脚本里还有 dnf module list --enabled、dnf module reset,在 10 上要么报 “No matching Modules”,要么只给弃用警告;先删掉这些步骤,再按实际包版本验证。
-
dnf module list是否只有弃用警告; - 目标包是否在 AppStream(
repoquery --repo); - 脚本是否还调用
dnf module enable/reset; - 版本锁定改用
versionlock; - 在 RHEL 10 上重跑安装,不只看文档。
未实测与边界
Section titled “未实测与边界”- 未在 RHEL 9 上复测 module 命令;
- 未测试所有 AppStream 包的版本策略;
- 未测试
dnf module在 dnf5 中的最终移除; - 未测试第三方模块流。
- RHEL 10 的 dnf 仍是 4.20 — dnf5 迁移边界
- RHEL 10 包回滚与版本锁定 — versionlock
- 官方:Managing software with the DNF tool