简介
如果你在管理 SUSE 15 机器,可能会遇到一个令人头疼的问题:存储库无法刷新,SUSEConnect 将所有产品显示为“Not Registered”。这个问题可能导致无法安装软件包,并扰乱你的正常运维。虽然 SUSE 的公开文档提供了排查步骤,但它们并不总能解决问题。本指南将带你了解症状、排查步骤以及一个经过验证的缓解策略,帮你修复 SUSE 15 存储库和注册问题。
问题症状
你可能会在 SUSE 15 机器上注意到以下症状:
- Zypper 刷新失败:系统找不到任何存储库。
- SUSEConnect 状态:运行
SUSEConnect --status会将所有产品显示为“Not Registered”。
这些症状可能看起来像常见的注册或连接问题,但常规的排查步骤无法解决这个特定问题。
排查步骤
1. 验证基本连接和注册
先从 SUSE 文档中概述的基本排查步骤开始:
- 运行:
SUSEConnect --cleanup
registercloudguest --force-new
SUSEConnect --status
- 使用
sc-repocheck.py脚本检查连接:
python3 <(curl --location --silent https://raw.githubusercontent.com/rfparedes/susecloud-repocheck/main/sc-repocheck.py)
如果这些步骤都失败了,你很可能遇到了一个与过期注册软件包有关的已知问题。
缓解策略
要解决这个问题,你需要在有问题的机器上手动更新注册软件包。具体方法如下:
步骤 1:从一台正常机器中提取注册软件包
- 在一台相同 Service Pack (SP) 且工作正常的 SUSE 机器上,运行以下命令:
zypper --pkg-cache-dir /tmp/ts/packages/ download cloud-regionsrv-client cloud-regionsrv-client-plugin-azure regionServiceClientConfigAzure python3-azuremetadata SUSEConnect python3-cssselect python3-toml python3-lxml python3-M2Crypto python3-zypp-plugin
mkdir /tmp/ts/rpms
find /tmp/ts/packages/ -type f -name "*.rpm" -exec cp {} /tmp/ts/rpms/ \;
cd /tmp/ts/
tar -czvf suse-sp4-public-registration.tgz rpms
- 完成后,删除临时文件夹:
rm -rf /tmp/ts
步骤 2:在有问题的机器上复制并安装软件包
- 将
suse-sp4-public-registration.tgz文件传输到有问题的机器。 - 解压文件:
tar xvfz suse-sp4-public-registration.tgz
cd rpms
- 安装软件包:
zypper --no-refresh --no-remote install *.rpm
- 出现提示时,选择 选项 2,然后选择 是。
- 运行以下命令来清理并重新注册系统:
SUSEConnect --cleanup
registercloudguest --force-new
SUSEConnect --status
步骤 3:刷新存储库
最后,刷新存储库以确保一切正常:
zypper refresh
其他说明
- 做好预防措施:在进行更改之前,务必创建操作系统磁盘快照。
- 保持软件包更新:过期的软件包往往是这些问题的根本原因。建议客户定期更新系统。
- 已终止支持的产品:大多数情况涉及 SUSE 15 SP2、SP3 和 SP4,这些版本已终止支持。客户应确认自己是否拥有长期 Service Pack 支持 (LTSS)。
有关产品生命周期的更多详情,请参阅 SUSE 产品支持生命周期。
结论
SUSE 15 存储库和注册问题可能很难处理,尤其是在标准排查步骤无效时。通过手动更新注册软件包,你可以解决这个问题,并恢复系统安装软件包的能力。
如果你觉得本指南有帮助,请分享给你的同事,或收藏起来以备日后参考。想了解更多技巧和排查指南,请订阅我们的新闻通讯,或在下方留言!