Разница между yum update и yum install

20

Во время работы с rpmкомандой я заметил, что если я установил, some-package-1.0а затем выполнил другой, rpm -ivh some-package-1.1оба пакета будут перечислены, когда я сделаю rpm -qa | grep some-packageследующее:

some-package-1.0
some-package-1.1

Однако вместо установки 1.1, если я обновляюсь через, rpm -Uvh some-package-1.1я получаю желаемый результат одного пакета (1.1), когда я делаю rpm -qa | grep some-package.

Теперь то же самое поведение применяется с yum installи yum update?

Я спрашиваю, потому что с помощью команды rpm -U(upgrade) пакет не должен существовать для обновления / установки, но с yum update(если я не ошибаюсь) пакет должен уже существовать.

Мне особенно интересно узнать результат определения пакетов с их версиями, такими как some-package-1.0. Итак, в итоге, я хочу знать, есть ли у меня две конкретные версии, такие как some-package-1.0и some-package-1.1:

  1. Будет ли выполнено выполнение yum installзадачи 1.1 после версии 1.0, список из 2 пакетов?
  2. Будет ли yum update some-package-1.1успешно работать замена some-package-1.0?
kaizenCoder
источник

Ответы:

31

Основные различия между YUM и RPM заключаются в том, что он yumзнает, как разрешать зависимости, и может получать эти дополнительные пакеты при выполнении своей работы. Хотя rpmможет предупредить вас об этих зависимостях, он не может найти дополнительные пакеты.

Что касается установки или обновления. Оба инструмента могут выполнить установку, а RPM даже позволит вам установить несколько версий одновременно, но YUM сообщит вам, что этот пакет уже установлен. Поэтому никакие YUM не позволят вам установить несколько версий.

Что касается yum update, это будет реагировать одним из двух способов. Если вы сообщите ему пакет, который хотите обновить, он попытается это сделать, загрузив все необходимые зависимости и установив их тоже. Если вы запустите его без имени пакета, yum updateпопытаетесь обновить каждый пакет, установленный в вашей системе.

Если вы используете yum upgradeего, он сделает то же самое yum update, за исключением того, что попытается удалить все пакеты, помеченные как «устаревшие».

пример

Вот сценарий, не похожий на ваш собственный. Новая версия vim-X11доступна.

$ yum check-update vim-X11 | expand
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit

vim-X11.x86_64                     2:7.4.417-1.fc19                      updates

И я в настоящее время на этой версии:

$ rpm -q vim-X11 | expand
vim-X11-7.4.179-1.fc19.x86_64

Когда мы пытаемся установить его:

$ sudo yum install vim-X11
...   
=================================================================================================================================================================
 Package                                 Arch                              Version                                      Repository                          Size
=================================================================================================================================================================
Updating:
 vim-X11                                 x86_64                            2:7.4.417-1.fc19                             updates                            1.2 M
Updating for dependencies:
 vim-common                              x86_64                            2:7.4.417-1.fc19                             updates                            5.9 M
 vim-enhanced                            x86_64                            2:7.4.417-1.fc19                             updates                            1.0 M
....
Running transaction
  Updating   : 2:vim-common-7.4.417-1.fc19.x86_64                                                                                                            1/6 
  Updating   : 2:vim-enhanced-7.4.417-1.fc19.x86_64                                                                                                          2/6 
  Updating   : 2:vim-X11-7.4.417-1.fc19.x86_64                                                                                                               3/6 
  Cleanup    : 2:vim-X11-7.4.179-1.fc19.x86_64                                                                                                               4/6 
  Cleanup    : 2:vim-enhanced-7.4.179-1.fc19.x86_64                                                                                                          5/6 
  Cleanup    : 2:vim-common-7.4.179-1.fc19.x86_64                                                                                                            6/6 
  Verifying  : 2:vim-enhanced-7.4.417-1.fc19.x86_64                                                                                                          1/6 
  Verifying  : 2:vim-X11-7.4.417-1.fc19.x86_64                                                                                                               2/6 
  Verifying  : 2:vim-common-7.4.417-1.fc19.x86_64                                                                                                            3/6 
  Verifying  : 2:vim-enhanced-7.4.179-1.fc19.x86_64                                                                                                          4/6 
  Verifying  : 2:vim-X11-7.4.179-1.fc19.x86_64                                                                                                               5/6 
  Verifying  : 2:vim-common-7.4.179-1.fc19.x86_64                                                                                                            6/6 

Итак, в заключение

  1. Будет ли выполнено выполнение yum installзадачи 1.1 после версии 1.0, список из 2 пакетов?

Нет. YUM все равно выполнит обновление, даже если вы сказали ему выполнить установку, если пакет уже установлен.

  1. Будет ли запущенный yum update some-package-1.1успешно заменить some-package-1.0?

Да.

SLM
источник
Спасибо за очень подробный ответ. Таким образом, как я вижу, я могу просто продолжать использовать, yum installкогда я указываю имя пакета с версией, и не беспокоюсь об установке нескольких версий. Ситуация, в которой я хотел бы использовать, yum updateбыла бы, когда я только указываю имя пакета, правильно?
kaizenCoder
@aspiringCodeArtisan - это частично правильно. yum installобнаружит, что пакет уже установлен, и переключится на его обновление, а не на установку, как показал мой пример.
SLM
@slm - Чтобы уточнить, может ли rpm выполнять поиск в хранилище, аналогичном поиску в zypper для определенного пакета?
мотивировано
1
@Motivation - no rpmis like dpkg, это касается только управления файлами на локальном диске. Для «управления» хранилищем ч / б вашей системы + репо вам нужно что-то вроде yumили dnf.
slm
1
@Mooted - rpmкогда используется для установки с URL- адреса, пакет не выполняет их извлечение, он просто загружает rpm локально, а затем устанавливает его.
SLM