3

Я пытаюсь установить git на ящик разработчика и получаю следующее:

You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
kernel-2.6.32-431.17.1.el6.x86_64 has installed conflicts bfa-firmware < ('0', '3.2.21.1',     '2'): bfa-firmware-3.0.3.1-1.el6.noarch
kernel-firmware-2.6.32-431.17.1.el6.noarch is a duplicate with kernel-firmware-2.6.32-358.23.2.el6.noarch
kernel-headers-2.6.32-431.17.1.el6.x86_64 is a duplicate with kernel-headers-2.6.32-358.23.2.el6.x86_64

Как я могу решить это? Я не слишком знаком с CentOS/RHEL

Спасибо

3 ответа3

3

В моем случае я обнаружил, что что-то пошло не так, и многие пакеты были обновлены без удаления более старых версий. Попытки восстановить базу данных RPM не решили проблему.

Одно из работающих решений - просто удалить старую версию и переустановить более новую версию.

Глядя на вывод ошибок, каждая строка в основном говорит, что пакет обновления является дубликатом с предыдущим пакетом, то есть:

    kernel-headers-2.6.32-431.17.1.el6.x86_64 is a duplicate with kernel-headers-2.6.32-358.23.2.el6.x86_64

Следующее, кажется, работает для меня:

    rpm --erase --nodeps --noscript kernel-headers-2.6.32-358.23.2.el6.x86_64

Команда указывает RPM удалить конкретный предыдущий пакет без удаления каких-либо зависимостей или запуска каких-либо сценариев, связанных с задачей.

Далее необходимо переустановить пакет:

    yum reinstall kernel-headers

На этот раз нет необходимости указывать точную версию пакета, поскольку yum будет искать самую последнюю версию и переустанавливать ее.

Yum будет выводить результат своей операции Yum Check при каждом запуске. Продолжайте делать это, пока в списке больше не будет повторяющихся пакетов.

Обратите внимание, что вы можете запросить базу данных RPM напрямую. Например, если вы видите много сообщений, содержащих строку glibc, вы можете получить простой список пакетов, в именах которых есть эта строка, например:

    rpm -qa | grep glibc | sort

Который может производить что-то вроде:

    glibc-2.17-157.el7_3.5.x86_64
    glibc-common-2.17-157.el7_3.4.x86_64
    glibc-common-2.17-157.el7_3.5.x86_64
    glibc-devel-2.17-157.el7_3.5.x86_64
    glibc-headers-2.17-157.el7_3.5.x86_64

Теперь более очевидно, что предыдущая версия glibc-common должна быть удалена:

    rpm --erase --nodeps --noscript glibc-common-2.17-157.el7_3.4.x86_64
    yum reinstall glibc-common
3

Первопричина

Прерывание процесса обновления up2date или yum привело к установке нескольких версий одного и того же пакета.

разрешение

  1. Если система Red Hat Enterprise Linux 5 или новее, можно использовать команду package-cleanup:

$ package-cleanup --dupes $ package-cleanup --cleandupes

Команда --dupes выведет список дубликатов пакетов, установленных на компьютере, а ключ --cleandupes удалит более старые версии. Команда package-cleanup предоставляется пакетом yum-utils.

  1. Если очистка пакетов не помогает или система Red Hat Enterprise Linux 4, удалите пакеты вручную, используя rpm:

$ rpm -e --justdb <package-name>-<old-version>

Ключ '--justdb' используется, чтобы гарантировать, что удаление пакета не удалит его файлы из файловой системы, удаляя его только из базы данных rpm.

Некоторые дубликаты не могут быть удалены, поскольку они требуются установленными пакетами. Вы можете попробовать --cleandupes с --removenewestdupes или просмотреть их с помощью --dupes и удалить вручную.

0

Попробуйте выполнить следующую команду

yum clean all
rpm --rebuilddb
yum update
yum clean all
yum reinstall glibc glibc-common libgcc
yum upgrade
yum install yum-utils
package-cleanup --problems
package-cleanup --dupes

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .