在 RHEL / CentOS 上安装 Fedora 源包

在 RHEL / CentOS 上安装 Fedora 源包

我正在尝试在 RHEL / CentOS 机器上升级 curl。我在许多存储库中找到了看似合适的源包。(即http://mirror.centos.org/centos/6/os/SRPMS/Packages/curl-7.19.7-16.el6.src.rpm

当尝试使用从源包创建 rpm 时rpmbuild,我得到以下输出;

# rpmbuild --rebuild curl-7.19.7-16.el6.src.rpm
Installing curl-7.19.7-16.el6.src.rpm
warning: InstallSourcePackage: Header V3 RSA/SHA256 signature: NOKEY, key ID c105b9de
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
error: unpacking of archive failed on file /usr/src/redhat/SOURCES/curl-7.15.3-multilib.patch;4e984633: cpio: MD5 sum mismatch
error: curl-7.19.7-16.el6.src.rpm cannot be installed

问题似乎是该源代码适用于使用 SHA-256 的 Fedora。有一个错误记录这里其中有注释表明有一种方法可以绕过 md5 校验和。但是,它不是很详细。

有没有办法安装这个包?

答案1

我假设您想将 CentOS5 curl 升级到 CentOS6 版本。我认为问题不在于 SHA256 签名,而在于 CentOS5 不支持的 XZ/LZMA 压缩。

你需要:

  • 在备用计算机或虚拟机上运行 CentOS6 — LiveCD 就足够了
  • 在 CentOS6 上:yum install rpm-build yum-utils
  • 在 CentOS6 上:yumdownloader --source curl
  • 在 CentOS6 上:rpm -i curl-*.src.rpm
  • 在 CentOS6 上:scp -pr ~/rpmbuild your_username@your_centos_ip:
  • 在 CentOS5 上:rpmbuild -ba ~/rpmbuild/SPECS/curl.spec

答案2

如果你没有 CentOS 6 可用,请@Tometzky建议,这将起作用:

cd ~/rpmbuild/SOURCES
rpm2cpio ~/path/to/your/curl-*.src.rpm | cpio -idmv
mv *.spec ~/rpmbuild/SPECS/
rpmbuild -ba ~/rpmbuild/SPECS/curl.spec

不幸的是,在 CentOS 5 上从 CentOS 6 重建 curl 涉及到比第一个障碍更多的复杂性,包括:

  • 在 CentOS 5 上从 CentOS 6 重建 libssh2
  • 安装 lzma
  • 我还没弄清楚的其他事情

答案3

尝试:

rpmbuild --rebuild --define "_source_filedigest_algorithm md5" --define "_binary_filedigest_algorithm md5" curl-7.19.7-16.el6.src.rpm

如果这不起作用,您可能需要提取 RPM,然后重建它:

rpm -i --nomd5 curl-7.19.7-16.el6.src.rpm
rpmbuild -ba --define "_source_filedigest_algorithm md5" --define "_binary_filedigest_algorithm md5" /usr/src/redhat/SPECS/curl.spec

我在最后一条命令中可能输入了错误的 spec 文件名。

答案4

我认为你正在谈论这个错误:https://bugzilla.redhat.com/show_bug.cgi?id=490613#c15

仅供参考:包含具有反向移植强哈希 + xz 有效负载支持的 rpm 的 SRPM 可从 Fedora 基础设施存储库获得:

http://infrastructure.fedoraproject.org/builder-rpms/SRPMS/

我已经在我的构建器上使用了很长时间,它们运行良好。如果它们被正式纳入 RHEL5,那就太好了。

你想要 rpm-4.6.0-4.0.notting.1.el5

src.rpm 或二进制文件位于:

http://infrastructure.fedoraproject.org/builder-rpms/SRPMS/

http://infrastructure.fedoraproject.org/builder-rpms/i386/

http://infrastructure.fedoraproject.org/builder-rpms/x86_64/

相关内容