Perché dovresti sempre usare `rpm -U` e non` rpm -i` per installare il pacchetto?


19

rpm ha un'opzione -i( --install) per installare un pacchetto
rpm ha un'opzione -U( --upgrade) che installa o aggiorna un pacchetto

La documentazione del cappello rosso indica che rpm -iè perfettamente accettabile.

Tuttavia, ogni documentazione che abbia mai visto ha raccomandato di utilizzare -U, anche se il pacchetto viene installato per la prima volta.

Perché è rpm -Ucomunemente preferito rispetto rpm -i?

Risposte:


37

La maggior parte della documentazione suggerisce -Usopra -iperché -ipotrebbe non riuscire se il pacchetto è stato già installato, o già avuto una versione precedente installata; mentre -Uriuscirà anche se "l'aggiornamento" dal pacchetto non viene affatto installato. Quando si dà un how-to, come nel caso della documentazione, è generalmente un'idea migliore dare comandi con una minore probabilità di uno stato di fallimento.


1

La documentazione in realtà non dice che -idovrebbe essere utilizzata per gli aggiornamenti. Dice che uno dovrebbe usarlo per gli aggiornamenti del kernel. Il motivo è che se il sistema non si avvia con il nuovo kernel, è ancora disponibile il vecchio kernel. Questo, tuttavia, è un caso speciale: i pacchetti del kernel sono praticamente ortogonali nel senso che non possiedono file in conflitto poiché tutto è sottoposto a versione (i moduli kernel, initrd e library di vari pacchetti kernel possono vivere uno accanto all'altro).

I pacchetti di spazio utente ordinario raramente sono così indipendenti. Se si utilizza rpm -iper eseguire un aggiornamento, è probabile che si verifichino due pacchetti con lo stesso nome (e versione diversa) installati contemporaneamente, con i precedenti rotti (metà sovrascritti). In realtà è possibile installare lo stesso pacchetto due volte, una volta che ciò accade è probabile che alcuni strumenti e / o persone rimangano piuttosto confusi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.