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

Как предотвратить конфликтующее обновление репо?

На EC2 / Amazon Linux AMI (на базе Centos) я создал /etc/yum.repos.d/nginx.repo:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

Затем я успешно установил nginx 1.4.2:

sudo yum --disablerepo="*" --enablerepo="nginx" install nginx

Теперь, когда я бегу sudo yum update, Я получил:

---> Package nginx.x86_64 0:1.4.2-1.el6.ngx will be updated
---> Package nginx.x86_64 1:1.2.9-1.11.amzn1 will be an update

НЕТ!

Как заблокировать обновление навсегда? (что на самом деле является понижением версии)

Сопровождающие сторонние репозитории должны называть свои пакеты таким образом, чтобы они не мешали основному репозиторию, в противном случае возникнут конфликты, подобные этому. Подобные конфликты являются непрофессиональными и являются признаком низкого качества.

Некоторые обходные пути:

YUM приоритеты

Ты можешь использовать Yum Priorities настроить каждое репо для использования определенного приоритета, назначив priority=N в репозитории, перечисленные в файле .repo. Некоторые разработчики Yum раскритиковали Yum Priorities. Прочтите «Предупреждение» внизу.

Исключая пакеты

Вы также можете исключить пакеты из определенных репозиториев. Итак, добавьте что-то подобное в свое основное репо. Замените имена своих пакетов.

[main]
exclude=php* kernel* 

Вы можете использовать yum update-minimal

update-minimal Работает как обновление, но переходит к соответствию «новейшего» пакета, который устраняет проблему, влияющую на вашу систему

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

yum --exclude=nginx* update