Как мне установить rpm, который жалуется на rpmlib (FileDigests) <= 4.6.0-1?

27

Я пытаюсь установить RPM-файл на CentOS 5, и я не уверен, как решить эту проблему:

$ rpm --install epel-release-6-5.noarch.rpm
warning: epel-release-6-5.noarch.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID 0608b895
error: Failed dependencies:
    rpmlib(FileDigests) <= 4.6.0-1 is needed by epel-release-6-5.noarch
    rpmlib(PayloadIsXz) <= 5.2-1 is needed by epel-release-6-5.noarch

Что означают строки rpmlib (FileDigests) <= 4.6.0-1? rpmlib устарел или FileDigests устарел? Что с синтаксисом чего-то, за которым следуют скобки?

Я пытался использовать yum, чтобы он мог автоматически разрешать зависимости, но не смог:

$ sudo yum --nogpgcheck install epel-release-6-5.noarch.rpm
...
Running rpm_check_debug
ERROR with rpm_check_debug vs depsolve:
rpmlib(FileDigests) is needed by epel-release-6-5.noarch
rpmlib(PayloadIsXz) is needed by epel-release-6-5.noarch
Complete!
(1, [u'Please report this error in https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%205&component=yum'])

На этой странице https://bugzilla.redhat.com/show_bug.cgi?id=665073 они говорят, что мой rpm устарел, но затем говорят, что я должен запросить файл rpm, который работает с моей версией rpm (которая составляет 4.4. 2.3) но я не хочу этого делать. Как сделать мою систему совместимой с этим файлом rpm?

Бонусные баллы, если вы скажете мне, как я могу исправить ошибку открытого ключа.

Джейк
источник
Хотя это не совсем установка пакета, можно, по крайней мере, извлечь пакет, а затем использовать его содержимое без его установки: просмотреть rpm2cpio some-package.rpm | cpio -tvего содержимое и использовать cpio -ivdдля его извлечения.
ckujau

Ответы:

30

Что с синтаксисом чего-то, за которым следуют скобки?

От http://jfearn.fedorapeople.org/en-US/RPM/0.1/html/RPM_Guide/ch-advanced-packaging.html :

Языки сценариев, такие как Perl и Tcl, позволяют добавлять дополнительные модули. Вашему пакету могут потребоваться некоторые из этих дополнительных модулей. RPM использует специальный синтаксис с круглыми скобками для указания зависимостей модуля скрипта. Например: Требуется: perl (Carp)> = 3.2 Это указывает на требование к дополнительному модулю Carp для Perl, большее или равное версии 3.2.

В этом случае это относится к определенным функциям библиотеки rpm.

ошибка: сбойные зависимости: для epel-release-6-5.noarch требуется rpmlib (FileDigests) <= 4.6.0-1. Для epel-release-6-5.noarch требуется rpmlib (PayloadIsXz) <= 5.2-1.

Это говорит о том, что вы пытаетесь установить epel-releaserpm в системе, для которой он не предназначен. На самом деле, в своем вопросе вы утверждаете, что устанавливаете это на CentOS 5, а пакет, который вы пытаетесь установить, предназначен для CentOS 6 (или RHEL 6). Для CentOS 5 вам нужен epel-release-5-4.noarch.rpm . Возможно, вы захотите прочитать документацию EPEL, прежде чем продолжить, которая ответит на этот вопрос так же, как и на другие, которые у вас могут возникнуть.

Я пытался использовать yum, чтобы он мог автоматически разрешать зависимости, но не смог:

Правильно, потому что эти функции недоступны в CentOS 5. С точки зрения того, что yumвы спросили его о волшебных единорогах. Он не может найти ни одного.

Бонусные баллы, если вы скажете мне, как я могу исправить ошибку открытого ключа.

Установите ключ подписи EPEL. Если вы прочтете документацию EPEL - это удивительно, что вы там найдете - вы получите ссылку на https://fedoraproject.org/keys , которая включает инструкции по установке открытых ключей, используемых проектом Fedora.

larsks
источник
15
Это хороший ответ, множество ответов, которые проясняют ситуацию. Слишком плохо из-за слегка прихотливого тона. Может быть, для вас ясно, что лежит на земле, но для меня все еще покрыто туманом войны ...
Порода Питера
4

Текущая ссылка rmp, которая работала для меня на CentOS 5.5:

# rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Обрабатывает зависимости автоматически.

Также обратите внимание, что может быть полезно просмотреть репост по адресу: http://dl.fedoraproject.org/pub/epel/5/i386/ (/ 6 / i386 / etc), чтобы найти наиболее подходящий / правильный адрес.

CNSKnight
источник
0

Лучшая команда будет $ yum install epel-release и yum получит правильные обороты

Вы также можете запустить приведенные ниже команды, чтобы исправить ошибку открытого ключа.

$ yum clean all
$ yum makecache
$ yum update
Кенни Каане
источник
-1

Моя проблема была описана в этой теме: http://comments.gmane.org/gmane.linux.redhat.fedora.general/410408

Ссылки, размещенные в документации, являются перенаправлениями, которые (как-то?) Вызывают проблемы с загрузкой. Сделал то, что сказал поток, и затем остальные документы EPEL работали.

Джесси П
источник
1
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится.
Майкл Хэмптон