Исключить определенный репо из обновления YUM


13

Я выполняю общесистемное обновление yum на RHEL 5.5, а хранилище IUS EPEL выдает ошибку отсутствующей зависимости:

php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-   5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)

Есть ли способ запустить обновление YUM для всех других репозиториев, игнорируя репозиторий IUS EPEL, чтобы пропустить эту проблему зависимости?

осветление

Я пытаюсь установить обновления только из сети Redhat. Я не могу найти имя репо, поэтому я не могу сделать что-то вроде, так sudo yum --disablerepo=* --enablerepo=rhel updateкак используемая версия yum не поддерживает несколько репозиториев, перечисленных после --disablerepo.

Обновить

Мой временный обходной путь - бежать sudo yum --exclude=php53* update. Я убежден, что есть лучший способ. Этот лучший способ включает исправление существующей проблемы, поэтому я также подал ошибку в Проект сообщества IUS .

Обновление № 2

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

Благодарность!


Я обновил свой ответ, чтобы учесть ваши разъяснения.
plasmid87

Ответы:


21

Попробуйте отключить репо:

--disablerepo=REPONAME

ОБНОВИТЬ

Чтобы найти все репозитории, которые в настоящее время "известны" (включены и отключены):

yum repolist all

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

yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates

Затем будет показано, какие из ваших репозиториев предоставляют вышеуказанный пакет (вы также увидите «установленный» в списке, чтобы показать локально установленные пакеты).

Попробуйте снова отключить выключатель, как только вы узнаете хранилище, используя выключатель хранилища.

yum update --disablerepo=[from above]

Если вышеперечисленные шаги не помогут выделить репозиторий, который вы хотите пропустить, попробуйте просмотреть файл /etc/yum.repos.d/ , который является местоположением по умолчанию RHEL для определений репозитория. Оказавшись в этом каталоге, найдите все нестандартные базы RHEL и обновите файлы репозитория и включите enabled = 0 , например,

[repo]
enabled=0

Надеюсь это поможет.


Это могло бы работать, если бы я мог указать несколько репозиториев. Я попробовал --disablerepo=epel --disablerepo=iusи --disablerepo=epel,ius.
Робин

yum repolist allпоказывает, что включены только следующие репозитории: epel, ius и rhel-x86_64-server-5. Ваша --showduplicatesкоманда показывает этот пакет как установленный из репозитория ius. Поэтому я попробовал следующее, sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 updateи он все еще выдает ошибку зависимости в том же пакете. Также я попытался отключить репозитории, изменив enabled=0настройку в /etc/yum.repos.d/
Робин

Я предполагаю, что когда вы установили репозиторий IUS, он был настроен на включение по умолчанию. Попробуйте вместо этого: sudo yum update --disablerepo=iusпри условии, что все остальные репозитории включены по умолчанию. В противном случае попробуйте просто sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64пропустить этот пакет.
plasmid87

Ни один из этих вариантов не работает. Я что-то упустил.
Робин

Тогда я могу только представить, что что-то еще нуждается в обновлении этого пакета в рамках процесса обновления. Если вы запустите sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64его, он покажет вам все зависимости и поставщиков для этого конкретного пакета. По моему опыту с пакетами PHP и RHEL, это общая проблема. Не желая отклоняться от рассматриваемой проблемы, но я обнаружил, что Remi предоставляет лучшие пакеты для PHP, у меня никогда не возникало проблем с зависимостями от PHP после перехода к их репозиториям.
plasmid87

1

самый простой способ сделать это - прокомментировать linux с нежелательным репозиторием в /etc/yum.repos.d/


1

Вы можете отключить несколько репозиториев в командной строке yum:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3

Однако, если вы это сделаете, вы должны явно включить репо, который вы хотите:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
           --disablerepo=myrepo3 --enablerepo=TheRepoIWant

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.