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?

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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.