На 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 Priorities настроить каждое репо для использования определенного приоритета, назначив priority=N
в репозитории, перечисленные в файле .repo. Некоторые разработчики Yum раскритиковали Yum Priorities. Прочтите «Предупреждение» внизу.
Вы также можете исключить пакеты из определенных репозиториев. Итак, добавьте что-то подобное в свое основное репо. Замените имена своих пакетов.
[main]
exclude=php* kernel*
Вы можете использовать yum update-minimal
update-minimal Работает как обновление, но переходит к соответствию «новейшего» пакета, который устраняет проблему, влияющую на вашу систему
Вы можете использовать следующую команду, чтобы указать пакеты, которые не нужно обновлять:
yum --exclude=nginx* update