Pourquoi devriez-vous toujours utiliser `rpm -U` et non` rpm -i` pour installer le paquet?

19

rpm a une option -i( --install) pour installer un paquet
rpm a une option -U( --upgrade) qui installera ou mettra à jour un paquet

La documentation du chapeau rouge indique que rpm -ic'est parfaitement acceptable.

Cependant, chaque documentation que j'ai jamais vue a recommandé d'utiliser -U, même si le package est installé pour la première fois.

Pourquoi est-il rpm -Ugénéralement préféré rpm -i?

spuder
la source

Réponses:

37

La plupart des documentations suggèrent que la procédure est -Uterminée, -icar elle -ipeut échouer si le package a déjà été installé ou si une version antérieure a déjà été installée; while -Uréussira même si la "mise à niveau" du package n'est pas du tout installée. Lorsque vous donnez un guide pratique, comme dans le cas de la documentation, il est généralement préférable de donner des commandes avec une probabilité plus faible de défaillance.

DopeGhoti
la source
1

En fait, la documentation ne dit pas qu'elle -idevrait être utilisée pour les mises à niveau. Il dit que l'on devrait l'utiliser pour les mises à niveau du noyau. La raison en est que si le système ne démarre pas avec le nouveau noyau, vous avez toujours l'ancien noyau disponible. Ceci est cependant un cas spécial - les packages du noyau sont à peu près orthogonaux dans le sens où ils ne possèdent pas de fichiers en conflit car tout est versionné (les modules de noyau, initrd et de bibliothèque de divers packages de noyau peuvent coexister).

Les packages d'espace utilisateur ordinaires sont rarement aussi indépendants. Si vous utilisez rpm -ipour effectuer une mise à niveau, vous vous retrouverez probablement avec deux packages du même nom (et d'une version différente) installés en même temps, les plus anciens étant cassés (à moitié remplacés). Il est en fait possible d'installer le même package deux fois - une fois que cela se produit, certains outils et / ou personnes sont susceptibles d'être assez confus.

peterph
la source