我已将 Oracle Linux 6.4 服务器更新为 Oracle Linux 6.8,该服务器已注册到 spacewalk 服务器。但更新后,yum 命令在服务器上不起作用。
[root@j4server tmp]# yum update
Loaded plugins: aliases, changelog, kabi, presto, refresh-packagekit, rhnplugin, security, tmprepo, verify,
: versionlock
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 298, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 115, in main
base.getOptionsConfig(args)
File "/usr/share/yum-cli/cli.py", line 229, in getOptionsConfig
self.conf
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 911, in <lambda>
conf = property(fget=lambda self: self._getConfig(),
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 363, in _getConfig
self.plugins.run('init')
File "/usr/lib/python2.6/site-packages/yum/plugins.py", line 184, in run
func(conduitcls(self, self.base, conf, **kwargs))
File "/usr/share/yum-plugins/rhnplugin.py", line 115, in init_hook
login_info = up2dateAuth.getLoginInfo()
File "/usr/share/rhn/up2date_client/up2dateAuth.py", line 219, in getLoginInfo
login()
File "/usr/share/rhn/up2date_client/up2dateAuth.py", line 167, in login
if readCachedLogin():
File "/usr/share/rhn/up2date_client/up2dateAuth.py", line 133, in readCachedLogin
expireTime = float(li['X-RHN-Auth-Expiration'])
KeyError: 'X-RHN-Auth-Expiration'
它正在抛出这个输出。当我尝试禁用 rhn-plugin 时,yum 命令有效,列出了 spacewalk 上的软件包,但正如您猜测的那样无法安装它们。
对于这种情况你有什么想法吗?谢谢你的帮助!
答案1
我已经找到了解决方案,我将解决方案发布在这里,以防有人遇到同样的情况。出现此故障的原因是,当您使用“yum update”命令通过 spacewalk 更新 Oracle Linux 服务器时,yum update 将服务器启用 spacewalk 的 rhn 插件替换为启用 ULN 的插件。
在将“RHEL 6.8”ISO 安装到 Oracle Linux 服务器之后,我使用“yum擦除up2date”和“yum擦除pirut”擦除了up2date软件包。我将此 iso 添加为本地存储库后。我已经使用“yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin”安装了 rhn 工具,并删除了本地存储库文件。现在一切正常!
答案2
我遇到了同样的错误,但可能是出于不同的原因。我向 spacewalk 服务器注册了 Oracle Linux 6.7,但忽略了先更新 spacewalk 软件包。除了这是一个问题之外,很多研究都没有发现太多问题。 (我确实尝试了 DNND 的解决方案,但 rhn 接管了 yum。下面的命令之一将适用于他的解决方案)
python 脚本中存在一个已知错误。编辑/usr/share/rhn/up2date_client/up2dateAuth.py
并更改 3 个实例:X-RHN-Auth-Expiration
为X-RHN-Auth-Expire-Offset
。
要么像 DNND 那样使用 Linux ISO,要么现代存储库通过禁用 rhn 插件来使用 yum:
yum --disableplugin=rhnplugin -y install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin
答案3
这是一个简单的修复方法。我发现rhnreg
在多个服务器上同时运行该命令以在 spacewalk/redhat 卫星上注册客户端会导致此问题。例如,我在 4 台服务器上运行此命令,但只有一台服务器注册成功。
我的 3 台服务器抛出了上述相同的错误。这是我为解决该问题所做的事情。
备份了我当前的up2dateAuth.py
文件
cp /usr/share/rhn/up2date_client/up2dateAuth.py /usr/share/rhn/up2date_client/up2dateAuth.py_`date +%m_%d_%Y`
我scp
从第一台已成功注册到太空行走服务器的服务器上进行了操作。
scp /usr/share/rhn/up2date_client/up2dateAuth.py root@server2:/usr/share/rhn/up2date_client/
ls -lrth /usr/share/rhn/up2date_client/up2dateAuth.py*
跑步
yum repolist
rhnreg_ks --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --serverUrl=https://myspacewalkserver-corp.com/XMLRPC --activationkey=1-oraclelinux6-x86_64 --force
yum repolist (it work like a charm)
PS不要忘记删除 cd /etc/yum.repos.d/; rm -rf spacewalk26-client.repo 在运行 rhnreg 命令之前,否则会抛出另一个错误。
在 Oracle Linux Yum Server 存储库配置文件中禁用对 Spacewalk Client 存储库的访问或删除 /etc/yum.repos.d/spacewalk26-client.repo。