yum эквивалентно apt-get upgrade vs apt-get dist-upgrade?

31

Я - * .deb парень, и я чувствую себя довольно неловко при управлении rpms.

Я привык работать apt-get upgradeв моей базе Debian серверов для «обычных» обновлений и apt-get dist-upgradeдля позволяя обновления ядра или позволяя новые обновления основных версий пакета.

На серверах CentOS, которые я администрирую, я бы хотел иметь аналогичную функцию, однако man yum, похоже, не предлагает такого поведения. И различия между yum updateи, yum upgradeкажется, не то, что я ищу.

Пока что мой лучший подход - добавить и удалить следующие настройки в /etc/yum.conf:

exclude=kernel*

Должен быть лучший подход. Каждое предложение будет приветствоваться.

Отредактированный:

Описание man-страницы yum и --obsoletesфлаг немного загадочны для меня. Итак, позвольте мне перефразировать то, что я понимаю из этого: я должен понять, что yum updateне установит новое ядро, потому что это будет означать пометку как устаревшее текущее? Могу ли я предположить, что yum upgradeделает то же самое или почти то же самое, что apt-get dist-upgrade?

Отредактировано 2

Что мне больше всего нравится, так apt-get upgradeэто то, что он говорит мне, какие пакеты остаются сохраненными, чтобы я мог действовать соответственно; либо с apt-get dist-upgradeили с явным apt-get install package.

Поэтому, подумав немного, лучше всего подойти к этому моменту : отключить настройку obsoletes в yum.conf (как описано Стивеном Притчардом в его ответе ) и запустить сначала yum update. Как только все обновления установлены, запустите секунду, yum update --obsoletesчтобы проверить, какие пакеты были сохранены, и действовать в зависимости от результатов.

Будет ли это работать?

hmontoliu
источник

Ответы:

57

yum updateПервоначально только что сделал обновления пакетов до новых версий. Если, например, foo-awesomeустарел foo, yum updateне будет предлагать обновить с fooдо foo-awesome. Добавление --obsoletesфлага yum updateзаставило его выполнить дополнительные проверки, чтобы также предложить этот путь обновления. yum upgradeбыл добавлен как (по существу) псевдоним для yum --obsoletes update. Поскольку это поведение , что почти каждый хочет , чтобы все время, параметр конфигурации obsoletes=1был добавлен по умолчанию /etc/yum.conf, что делает yum updateи yum upgradeэквивалент на любой недавней, акции, Fedora / RHEL / CentOS / др.

Если вы хотите избежать обновлений ядра во время работы yum update, вы можете просто сделать это yum --exclude=kernel* update. Если вы хотите, чтобы автоматические обновления были включены, но вы хотите избежать автоматических обновлений ядра, то добавление exclude в yum.conf, вероятно, является правильным ответом.

Вероятно, нет правильного ответа на ваш вопрос. Дистрибутивы на основе RHEL и RHEL не имеют той же философии, что и разработчики Debian, когда дело доходит до обновлений, поэтому инструменты не поощряют такого же поведения.

Стивен Притчард
источник
+1 Стивен; Я думаю, что не будет правильного ответа , поэтому я хочу как можно больше отзывов. Ваш ответ превосходен. Позвольте мне подождать, пока другие люди не приблизятся :-)
hmontoliu
Смотрите мою редакцию 2 , пока я считаю, что это хороший подход к имитации поведения apt-get.
hmontoliu
Вы также можете добавить исключения в файл yum.conf.
Не сейчас
3

Пытаться

# yum upgrade yum kernel
# yum -y upgrade
аф-на-работе
источник