RHEL 9 在 WSL2 里不能使用 subscription-manager 注册的解决方法
很简单的一个解决方法就是了,用不到拷贝文件。
在 WSL 里用 docker 镜像 setup 了一个 RHEL 9 之后,使用 dnf update
时出现了这个提示:
Updating Subscription Management repositories.
Unable to read consumer identity
Subscription Manager is operating in container mode.
This system is not registered with an entitlement server. You can use subscription-manager to register.
好吧,那尝试注册一下:
[root@251 ~]# subscription-manager attach --auto
subscription-manager is disabled when running inside a container. Please refer to your host system for subscription management.
看来因为我们使用 docker 镜像作为系统底子,所以并不能直接这样。解决方法也很简单,设置一下 SMDEV_CONTAINER_OFF
这个环境变量即可:
[root@251 ~]# export SMDEV_CONTAINER_OFF=1
[root@251 ~]# subscription-manager attach --auto
This system is not yet registered. Try 'subscription-manager register --help' for more information.
[root@251 ~]# subscription-manager register --username username --password password --auto-attach
Registering to: subscription.rhsm.redhat.com:443/subscription
The system has been registered with ID: 33dfffa7-24e0-448f-b4ec-2f48e05d23e6
The registered system name is: 251
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux for x86_64
Status: Subscribed
大功告成!
Update: 一劳永逸的解决方法
通过 Bug#2058540 和这个 PR 可以知道,目前 subscription-manager
是通过以下这三个目录探测是否为 docker 环境:
/run/.containerenv
/.dockerenv
/etc/rhsm-host/
而我生成的系统镜像内存在 /.dockerenv
,故直接删除即可解决这个问题。
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
如果上面没有加载出任何东西,可以点击这里。