Почему вы всегда должны использовать `rpm -U`, а не` rpm -i` для установки пакета?

19

rpm имеет опцию -i( --install) для установки пакета
rpm имеет опцию -U( --upgrade), которая устанавливает или обновляет пакет

Шляпа документация красный указывает на то, что rpm -iвполне приемлемо.

Однако, каждая документация, которую я когда-либо видел, рекомендовала использовать -U, даже если пакет устанавливается впервые.

Почему rpm -Uобычно предпочтительнее rpm -i?

spuder
источник

Ответы:

37

Большая часть документации предлагает -Uперезапуск, -iпотому что -iможет произойти сбой, если пакет уже установлен или уже установлена ​​более ранняя версия; while -Uбудет успешным, даже если «обновление» из пакета вообще не устанавливается. Когда даются инструкции, как в случае с документацией, обычно лучше давать команды с более низкой вероятностью состояния отказа.

DopeGhoti
источник
1

Документация фактически не говорит, что -iдолжна использоваться для обновлений. Он говорит, что нужно использовать его для обновления ядра. Причина в том, что если система не сможет загрузиться с новым ядром, у вас все еще будет доступно старое ядро. Это, однако, особый случай - пакеты ядра в значительной степени ортогональны в том смысле, что они не владеют конфликтующими файлами, поскольку все имеет версии (модули ядра, initrd и библиотеки из различных пакетов ядра могут жить рядом друг с другом).

Обычные пакеты пользовательского пространства редко бывают независимы. Если вы используете rpm -iдля обновления, вы, вероятно, в конечном итоге получите два пакета с одинаковым именем (и другой версией), установленные одновременно, причем более ранние будут повреждены (наполовину перезаписаны). Фактически возможно установить один и тот же пакет дважды - как только это произойдет, некоторые инструменты и / или люди могут запутаться.

peterph
источник