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
这就正常了。