скажи Yum игнорировать одну зависимость

37

Я пытаюсь установить winswitch на CentOs 6. Требуется nxagent. Но в centos имя пакета - «nx». Есть ли способ сказать yum, чтобы пропустить проверку зависимости 'nxagent' (я уже установил 'nx')? Указание --skip-broken пропускает все это

IttayD
источник

Ответы:

14

Как правило yum, нет вариантов игнорировать один пакет из зависимостей. Опция --skip-brokenигнорирует все неразрешенные зависимости.

Вы можете попробовать, yum --exclude=packagenameно он исключает конкретный пакет по имени или глобусу из обновлений во всех репозиториях, а не из зависимостей.

B14D3
источник
1
yum --excludeне работает с зависимостями
DrStrangepork
2
@DrStrangepork да я знаю, что написал это в своем ответе
B14D3
5
Ни то, --excludeни другое не --skip-brokenпомогает обойти одну или несколько зависимостей rpm --nodeps.
Acumenus
3
Перейти ко второму ответу.
Брторнбери
49

У rpmкоманды есть --nodepsопция, которую вы можете использовать. Проблема в том, что rpmсам по себе не знает о репозиториях yum. Следующая команда установит или обновит пакет, игнорируя зависимости, но автоматически ищет URL-адрес загрузки из ваших репозиториев, с repoqueryкоторыми он находится в пакете yum-utils.

rpm -Uvh --nodeps $(repoquery --location winswitch)

После этого регулярный yum update, скорее всего, будет успешным без ошибок зависимости.

Onnonymous
источник
$ (repoquery --location winswitch) не работает для меня. Однако можно загрузить пакет .rpm через "yumdownloader --destdir =. Package-name". «rpm -U» означает обновление. Если пакет не был установлен, для этого можно использовать «rpm -i». yumdownloader из yum-utils (dnf-utils в моем случае).
Ярослав Никитенко
2

Похоже, вы пытаетесь установить пакет, который не был разработан для ОС, то есть если бы он был разработан для CentOS, это потребовало бы nxправильно.

Другой обходной путь для этой проблемы - создать и установить небольшой RPM-пакет shim, который не содержит файлов, но в файле спецификации содержит следующие строки (среди прочих):

requires: nx
provides: nxagent

Таким образом, зависимость должна быть удовлетворена, однако может ожидаться, что файлы будут находиться в расположении, которое отличается между nxagentпакетом, который он ожидает установить, и nxпакетом, который предоставляет CentOS.

bodgit
источник
0

Вы также можете использовать rpmrebuild, чтобы изменить метаданные rpm, чтобы они указывали на новое имя пакета. тогда это будет «ваш» пакет, но он будет более чистым в зависимости от rpm. Я думаю, что нет недостатка в использовании --nodeps.

Флориан Хейгл
источник