Differenza tra aggiornamento yum e installazione yum


20

Mentre lavoravo con il rpmcomando ho notato che se ho installato some-package-1.0e poi eseguito un altro rpm -ivh some-package-1.1entrambi i pacchetti verranno elencati quando eseguo una procedura rpm -qa | grep some-packagesimile alla seguente:

some-package-1.0
some-package-1.1

Tuttavia, invece di installare 1.1, se aggiorno tramite rpm -Uvh some-package-1.1ottengo il risultato desiderato di un singolo pacchetto (1.1) quando lo faccio rpm -qa | grep some-package.

Ora lo stesso comportamento si applica con yum installe yum update?

Chiedo perché con il rpm -Ucomando (upgrade) non deve esistere un pacchetto per aggiornare / installare ma con yum update(se non sbaglio) un pacchetto deve già esistere.

Sono particolarmente interessato a conoscere il risultato della specifica di pacchetti con le loro versioni come some-package-1.0. Quindi, in sintesi, ciò che voglio sapere è se ho due versioni specifiche come some-package-1.0e some-package-1.1:

  1. L'esecuzione di un yum installsu 1.1 dopo 1.0 è già installata, elenca i pacchetti 2?
  2. La corsa verrà yum update some-package-1.1sostituita correttamente some-package-1.0?

Risposte:


31

Le principali differenze tra YUM e RPM sono che yumsa come risolvere le dipendenze e può procurarsi questi pacchetti aggiuntivi quando fa il suo lavoro. Sebbene rpmpossa avvisarti di queste dipendenze, non è in grado di procurarsi pacchetti aggiuntivi.

Per quanto riguarda l'installazione e l'aggiornamento. Entrambi gli strumenti possono eseguire un'installazione e RPM ti consentirà persino di installare più versioni contemporaneamente, ma YUM ti dirà che quel pacchetto è già installato. Quindi nessuno YUM non ti consentirà di installare più versioni.

Per quanto riguarda yum update, questo reagirà in due modi. Se gli dici un pacchetto che desideri aggiornare, tenterà di farlo, scaricando tutte le dipendenze necessarie e installandole. Se lo esegui senza alcun nome di pacchetto, yum updatetenterà di aggiornare tutti i pacchetti installati sul tuo sistema.

Se lo usi yum upgradefarà lo stesso di yum update, tranne che tenterà di rimuovere tutti i pacchetti che sono stati contrassegnati come "obsoleti".

Esempio

Ecco uno scenario non dissimile dal tuo. È vim-X11disponibile una nuova versione di .

$ yum check-update vim-X11 | expand
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit

vim-X11.x86_64                     2:7.4.417-1.fc19                      updates

E sono attualmente in questa versione:

$ rpm -q vim-X11 | expand
vim-X11-7.4.179-1.fc19.x86_64

Quando proviamo a installarlo:

$ sudo yum install vim-X11
...   
=================================================================================================================================================================
 Package                                 Arch                              Version                                      Repository                          Size
=================================================================================================================================================================
Updating:
 vim-X11                                 x86_64                            2:7.4.417-1.fc19                             updates                            1.2 M
Updating for dependencies:
 vim-common                              x86_64                            2:7.4.417-1.fc19                             updates                            5.9 M
 vim-enhanced                            x86_64                            2:7.4.417-1.fc19                             updates                            1.0 M
....
Running transaction
  Updating   : 2:vim-common-7.4.417-1.fc19.x86_64                                                                                                            1/6 
  Updating   : 2:vim-enhanced-7.4.417-1.fc19.x86_64                                                                                                          2/6 
  Updating   : 2:vim-X11-7.4.417-1.fc19.x86_64                                                                                                               3/6 
  Cleanup    : 2:vim-X11-7.4.179-1.fc19.x86_64                                                                                                               4/6 
  Cleanup    : 2:vim-enhanced-7.4.179-1.fc19.x86_64                                                                                                          5/6 
  Cleanup    : 2:vim-common-7.4.179-1.fc19.x86_64                                                                                                            6/6 
  Verifying  : 2:vim-enhanced-7.4.417-1.fc19.x86_64                                                                                                          1/6 
  Verifying  : 2:vim-X11-7.4.417-1.fc19.x86_64                                                                                                               2/6 
  Verifying  : 2:vim-common-7.4.417-1.fc19.x86_64                                                                                                            3/6 
  Verifying  : 2:vim-enhanced-7.4.179-1.fc19.x86_64                                                                                                          4/6 
  Verifying  : 2:vim-X11-7.4.179-1.fc19.x86_64                                                                                                               5/6 
  Verifying  : 2:vim-common-7.4.179-1.fc19.x86_64                                                                                                            6/6 

Quindi in sintesi

  1. L'esecuzione di un yum installsu 1.1 dopo 1.0 è già installata, elenca i pacchetti 2?

No. YUM eseguirà comunque un aggiornamento anche quando gli hai detto di fare un'installazione se il pacchetto è già installato.

  1. L'esecuzione yum update some-package-1.1con successo sostituirà some-package-1.0?

Sì.


Grazie per la risposta molto dettagliata. Quindi, per come la vedo, posso continuare a utilizzare solo yum installquando specifico il nome del pacchetto con la versione e non mi preoccupo dell'installazione di più versioni. Una situazione in cui vorrei utilizzare yum updatesarebbe quando specifico solo il nome del pacchetto, giusto?
kaizenCoder

@aspiringCodeArtisan - questo è parzialmente corretto. yum installrileverà che un pacchetto è già installato e passerà all'aggiornamento rispetto all'installazione, come mostrato dal mio esempio.
slm

@slm - Per chiarire, rpm può cercare un repository simile alla ricerca di zypper per un determinato pacchetto?
Motivato il

1
@Motivated - no rpmè come dpkg, riguarda solo se stesso con la gestione dei file sul disco locale. Per la "gestione" del repository tra il tuo sistema + un repository hai bisogno di qualcosa di simile yumo dnf.
slm

1
@Motivated: rpmse utilizzato per l'installazione da un url, non esegue alcun pacchetto dep per estrarli, ma scarica semplicemente l'rpm localmente e quindi lo installa.
slm
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.