Skip to main content

RedHat9.7用iso创建本地仓库

你这个报错本质上不是 dnf download 的问题,而是:

你的机器没有可用的软件仓库(repo)。

关键报错:

No package dnf-plugins-core available

以及:

This system is not registered with an entitlement server

说明当前:

  • 没注册 Red Hat Subscription

  • 或没有配置本地/镜像仓库

  • 所以 dnf 根本找不到包


先确认仓库状态

执行:

dnf repolist all

如果看到:

repo status: disabled

或者压根没 repo。

那就需要先配置仓库。


最简单方案(推荐)

使用 RHEL 9.7 ISO 作为本地仓库

这是企业离线环境最常见做法。


第一步:挂载 ISO

假设 ISO 文件:

/root/rhel-9.7-x86_64-dvd.iso

执行:

mkdir -p /mnt/rhel9

mount -o loop /root/rhel-9.7-x86_64-dvd.iso /mnt/rhel9

确认:

ls /mnt/rhel9

应该看到:

AppStream
BaseOS
EFI
images
isolinux
...

第二步:创建本地 repo

创建:

cat >/etc/yum.repos.d/rhel9-local.repo <<EOF
[BaseOS]
name=RHEL9 BaseOS
baseurl=file:///mnt/rhel9/BaseOS
enabled=1
gpgcheck=0

[AppStream]
name=RHEL9 AppStream
baseurl=file:///mnt/rhel9/AppStream
enabled=1
gpgcheck=0
EOF

第三步:清理缓存

dnf clean all
rm -rf /var/cache/dnf

第四步:重新生成缓存

dnf makecache

正常会看到:

Metadata cache created.

第五步:安装

现在再执行:

dnf install -y dnf-plugins-core

就可以了。


如果还是报错

执行:

dnf list available | grep dnf-plugins-core

正常应该能看到:

dnf-plugins-core.noarch

额外说明

在 RHEL 9:

  • dnf-plugins-core
    通常位于:

  • AppStream 仓库

所以:

  • BaseOS 开了

  • AppStream 没开

也会报你这个错误。


企业里更常见情况

很多公司:

  • 不注册 Red Hat

  • 使用:

    • Satellite

    • Nexus

    • Harbor

    • 本地 YUM 源

    • ISO repo

所以:
“Unable to read consumer identity”
通常可以忽略,不是致命错误。

真正的问题是:
没有可用 repo。


一条命令快速验证 ISO repo 是否成功

执行:

dnf repolist

应该看到:

repo id        repo name
AppStream      RHEL9 AppStream
BaseOS         RHEL9 BaseOS

这就正常了。