Назад | Перейти на главную страницу

Установите пакет исходного кода Fedora на RHEL / CentOS

Я пытаюсь обновить curl на машинах RHEL / CentOS. Я нашел то, что кажется подходящими исходными пакетами в нескольких репозиториях. (т.е. 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

Проблема, похоже, в том, что исходный код предназначен для Fedora, которая использует SHA-256. Зарегистрирована ошибка Вот в котором есть комментарии, указывающие на то, что есть способ обойти контрольную сумму md5. Однако это не очень подробно.

Есть ли способ установить этот пакет?

Если у вас нет коробки 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

К сожалению, восстановление curl из CentOS 6 на CentOS 5 требует гораздо больших сложностей, помимо этого первого препятствия, включая:

  • Восстановление libssh2 из CentOS 6 на CentOS 5
  • Установка lzma
  • Другие вещи, которые я еще не понял

Я предполагаю, что вы хотите обновить CentOS5 curl до версии CentOS6. Я думаю, проблема не в подписи SHA256, а в сжатии XZ / LZMA, которое не поддерживается CentOS5.

Вам необходимо:

  • запустить 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

Я думаю, вы говорите об этой ошибке: https://bugzilla.redhat.com/show_bug.cgi?id=490613#c15

К вашему сведению: SRPM, которые содержат rpm с поддержкой сильных хэшей + xz, доступны в репозиториях инфраструктуры 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/

Пытаться:

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

У меня может быть неправильное имя файла спецификации в последней команде.