Warum sollten Sie zum Installieren des Pakets immer "rpm -U" und nicht "rpm -i" verwenden?

19

rpm hat eine -i( --install) Option , um ein Paket zu installieren
rpm hat eine -U( --upgrade) Option , die ein Paket installieren oder aktualisieren

Die Red Hat-Dokumentation zeigt, dass dies rpm -ivollkommen akzeptabel ist.

In jeder Dokumentation, die ich je gesehen habe, wird jedoch die Verwendung empfohlen -U, auch wenn das Paket zum ersten Mal installiert wird.

Warum wird rpm -Uallgemein vorgezogen rpm -i?

Spuder
quelle

Antworten:

37

Die meisten Dokumentation schlägt vor , -Uüber -ida -ikann fehlschlagen , wenn das Paket wurde bereits installiert, oder hatte bereits eine frühere Version installiert; while -Uwird auch dann erfolgreich sein, wenn ein "Upgrade" des Pakets überhaupt nicht installiert wird. Wenn Sie eine Anleitung geben, wie im Fall der Dokumentation, ist es im Allgemeinen eine bessere Idee, Befehle mit einer geringeren Wahrscheinlichkeit eines Fehlerzustands zu geben.

DopeGhoti
quelle
1

Die Dokumentation sagt eigentlich nicht, -idass für Upgrades verwendet werden sollte. Es heißt, man sollte es für Kernel-Upgrades verwenden. Der Grund ist, dass falls das System nicht mit dem neuen Kernel booten kann, Sie immer noch den alten Kernel zur Verfügung haben. Dies ist jedoch ein Sonderfall - Kernelpakete sind ziemlich orthogonal in dem Sinne, dass sie keine in Konflikt stehenden Dateien besitzen, da alles versioniert ist (Kernel-, initrd- und Bibliotheksmodule aus verschiedenen Kernelpaketen können nebeneinander leben).

Gewöhnliche Userspace-Pakete sind selten so unabhängig. Wenn Sie rpm -iein Upgrade durchführen, werden wahrscheinlich zwei Pakete mit demselben Namen (und unterschiedlicher Version) gleichzeitig installiert, wobei die früheren Pakete beschädigt (zur Hälfte überschrieben) werden. Es ist tatsächlich möglich, dasselbe Paket zweimal zu installieren. In diesem Fall sind einige Tools und / oder Personen wahrscheinlich ziemlich verwirrt.

peterph
quelle