Unterschied zwischen yum update und yum install

20

Bei der Arbeit mit dem rpmBefehl ist mir aufgefallen, dass, wenn ich ein some-package-1.0anderes rpm -ivh some-package-1.1Paket installiert und dann ausgeführt habe, beide Pakete aufgelistet werden, wenn ich rpm -qa | grep some-packageFolgendes mache :

some-package-1.0
some-package-1.1

Anstatt jedoch 1.1 zu installieren, rpm -Uvh some-package-1.1erhalte ich bei einem Upgrade über das das gewünschte Ergebnis eines einzelnen Pakets (1.1) rpm -qa | grep some-package.

Gilt nun dasselbe Verhalten für yum installund yum update?

Ich frage, weil mit dem rpm -U(Upgrade-) Befehl ein Paket nicht existieren muss, um zu aktualisieren / installieren, aber mit yum update(wenn ich mich nicht irre) muss bereits ein Paket existieren.

Mich interessiert besonders das Ergebnis der Angabe von Paketen mit ihren Versionen wie some-package-1.0. Zusammenfassend möchte ich wissen, ob ich zwei spezifische Versionen habe, wie some-package-1.0und some-package-1.1:

  1. Wird das Ausführen einer yum installVersion 1.1 nach 1.0 bereits installiert sein und 2 Pakete auflisten?
  2. Läuft yum update some-package-1.1erfolgreich zu ersetzen some-package-1.0?
kaizenCoder
quelle

Antworten:

31

Die Hauptunterschiede zwischen YUM und RPM bestehen darin, dass es yumweiß, wie man Abhängigkeiten auflöst und diese zusätzlichen Pakete bei der Arbeit beschaffen kann. Obwohl rpmkönnen Sie auf diese Abhängigkeiten alarmieren, ist es nicht in der Lage zusätzliche Pakete zu beziehen.

Was Installation und Upgrade angeht. Beide Tools können eine Installation durchführen, und mit RPM können Sie sogar mehrere Versionen gleichzeitig installieren. YUM teilt Ihnen jedoch mit, dass dieses Paket bereits installiert ist. Mit no YUM können Sie also nicht mehrere Versionen installieren.

In Bezug auf yum update, wird diese in einem von zwei Arten reagieren. Wenn Sie dem Paket mitteilen, dass Sie es aktualisieren möchten, versucht es dies, lädt alle erforderlichen Abhängigkeiten herunter und installiert sie ebenfalls. Wenn Sie es ohne Paketnamen ausführen, yum updatewird versucht, jedes auf Ihrem System installierte Paket zu aktualisieren .

Wenn Sie es verwenden , verhält es sich yum upgradegenauso yum update, mit der Ausnahme, dass es versucht, alle Pakete zu entfernen, die als "veraltet" markiert wurden.

Beispiel

Hier ist ein Szenario, das Ihrem eigenen nicht unähnlich ist. Eine neue Version von vim-X11ist verfügbar.

$ 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

Und ich bin derzeit bei dieser Version:

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

Wenn wir versuchen, es zu installieren:

$ 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 

Also zusammenfassend

  1. Wird das Ausführen einer yum installVersion 1.1 nach 1.0 bereits installiert sein und 2 Pakete auflisten?

Nein. YUM führt auch dann noch ein Update durch, wenn Sie eine Installation durchführen, wenn das Paket bereits installiert ist.

  1. Wird yum update some-package-1.1some-package-1.0 erfolgreich durch Laufen ersetzt?

Ja.

slm
quelle
Vielen Dank für die ausführliche Antwort. So wie ich es sehe, kann ich es einfach weiterverwenden, yum installwenn ich den Paketnamen mit der Version spezifiziere und nicht damit befasst bin, mehrere Versionen zu installieren. Eine Situation, in der ich verwenden möchte, yum updatewäre, wenn ich nur den Paketnamen spezifiziere, richtig?
KaizenCoder
@aspiringCodeArtisan - das ist teilweise richtig. yum installerkennt, dass ein Paket bereits installiert ist, und wechselt, wie in meinem Beispiel gezeigt, zum Aktualisieren und nicht zum Installieren.
SLM
@slm - Kann RPM ein Repository durchsuchen, das der Zypper-Suche nach einem bestimmten Paket ähnelt?
Motivierter
1
@Motivated - keine rpmist wie dpkg, es beschäftigt sich nur w / auf der lokalen Festplatte die Dateien zu verwalten. Für das Repository "Management" s / w deines Systems + ein Repo benötigst du so etwas wie yumoder dnf.
slm
1
@Motivated - rpmBei der Installation über eine URL wird keine Paketabhängigkeit ausgeführt, um sie ebenfalls abzurufen. Sie lädt lediglich die RPM lokal herunter und installiert sie dann.
slm