Різниця між оновленням yum від 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.1I, я отримую бажаний результат одного пакету (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 install1,1 після 1,0, перерахуйте 2 пакети?
  2. Чи yum update some-package-1.1вдало замінить запущений біг some-package-1.0?

Відповіді:


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 install1,1 після 1,0, перерахуйте 2 пакети?

Ні. YUM продовжує виконувати оновлення, навіть якщо ви сказали йому зробити встановлення, якщо пакет уже встановлений.

  1. Чи буде yum update some-package-1.1успішно працює замінити деякий пакет-1.0?

Так.


Дякую за набагато детальну відповідь. Тож те, як я це бачу, я можу просто продовжувати використовувати, yum installколи я вказую ім'я пакета з версією і не переймаюся встановленням декількох версій. Ситуація, коли я хотів би скористатися yum update, коли б я лише вказав назву пакета, правильно?
kaizenCoder

@aspiringCodeArtisan - це частково правильно. yum installвиявить, що пакет уже встановлений, і переключиться на його оновлення та встановлення, як показав мій приклад.
slm

@slm - Щоб уточнити, чи може rpm шукати сховище, схоже на пошук на блискавці для певного пакету?
Мотивовано

1
@ Мотивовано - ні, rpmце не так dpkg, це стосується лише себе з / керування файлами на локальному диску. Для "управління" в репозиторії вашої системи + репо вам потрібно щось на зразок yumабо dnf.
slm

1
@Motivate - rpmколи використовується для встановлення з URL-адреси, не робиться жодного пакету dep, щоб втягнути їх, він просто завантажує rpm локально, а потім встановлює його.
slm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.