RHEL Satellite Server 5.5 和 EPEL 同步问题(gzip 与 bz2 与 manifest.xml)

RHEL Satellite Server 5.5 和 EPEL 同步问题(gzip 与 bz2 与 manifest.xml)

客户端卡在 RHEL Satellite Server 5.5(方式 EOL)上并作为子通道运行 EPEL。好久没更新了。其他变量,Python 2.6,Redhat 6.9

但是,当尝试更新 EPEL 存储库 (spacewalk-repo-sync) 时,它最终失败并出现 gzip 错误(文件不是 gzip 压缩文件)。 epel 的清单是 bz2 (updateinfo.xml.bz2)。 (我编辑了 gzip.py 中的错误处理程序以转储文件名)。

在谷歌上查看对它的引用,但没有干净的解决方案或解决方法。 (除了升级卫星之外,目前还不能选择)。

有什么想法吗?也许是使用 gzip 的不同存储库?只是有点卡在这里,如果我目光短浅,也不会感到惊讶。

与 IUS 和 Redhats 标准通道配合良好。

谢谢。

答案1

EPEL 存储库包含一些压缩的 xml 文件。你们老化和疲惫的卫星版本无法理解如此现代的复杂性。

已知错误。看Bug 970315 - RFE:spacewalk-repo-sync 不支持包含 bz2 压缩 xml 文件的 yum 存储库

尝试像 bugzilla 中提到的同事那样将修复程序向后移植到您的 Satellite 实例吗?这是提交,从 4 年前开始,看起来很容易改造。

答案2

我在由约 700 个虚拟机组成的 RHEL6 环境中运行 spacewalk 2.2。我需要修改艾哈迈德萨吉德nightly_sync 用于我需要的存储库,包括 EPEL。我的版本可用这里

我将所有存储库本地下载到我的 Spacewalk 服务器,并通过 Apache 将 Spacewalk 存储库指向公共目录。 reposync 完成后,我可以根据需要处理 EPEL 的 updateinfo.xml,以便 spacewalk 识别该格式:

set -o pipefail
if ls $REPO_DIR/$REPO/*updateinfo.xml.gz 2>/dev/null | tail -n 1 ; then
  echo "updateinfo.xml.gz found"
  gunzip -c $(ls -rt $REPO_DIR/$REPO/*updateinfo.xml.gz | tail -n 1) > $REPO_DIR/$REPO/updateinfo.xml
else
  echo "updateinfo.xml.gz not found"
  file=$(curl -s https://dl.fedoraproject.org/pub/epel/6Server/x86_64/repodata/ | grep "updateinfo.xml.bz2" | cut -d'"' -f6)
  echo "Downloading EPEL $file"
  wget -q -P $REPO_DIR/$REPO/ https://dl.fedoraproject.org/pub/epel/6Server/x86_64/repodata/$file
  bunzip2 -c $(ls -rt $REPO_DIR/$REPO/*updateinfo.xml.bz2 | tail -n 1) > $REPO_DIR/$REPO/updateinfo.xml
fi

之后,我在我需要的通道上运行 spacewalk-repo-sync (我只有一个)。

它很脏(现在),但它有效。我在 crontab 中将其设置为每晚凌晨 1 点左右运行。如果您包含所有存储库,初始同步可能需要一段时间。如有必要,您可以将其缩减为仅处理 EPEL。

相关内容