Bei der Arbeit mit dem Befehl rpm
ist mir aufgefallen, dass ich some-package-1.0
und führte dann ein weiteres rpm -ivh some-package-1.1
aus. Beide Pakete werden aufgelistet, wenn ich eine rpm -qa | grep some-package
wie folgt mache :
some-package-1.0 some-package-1.1
Wenn ich jedoch anstelle von 1.1 ein Upgrade über rpm -Uvh some-package-1.1
durchführe, erhalte ich das gewünschte Ergebnis von a Einzelpaket (1.1), wenn ich rpm -qa | grep some-package
mache.
Jetzt gilt das gleiche Verhalten für yum install
und yum update
?
Ich frage, weil mit dem Befehl rpm -U
(upgrade) ein Paket nicht existieren muss, um ein Upgrade durchzuführen / installieren, aber mit yum update
(wenn ich mich nicht irre) muss bereits ein Paket vorhanden sein.
Ich bin besonders daran interessiert, das Ergebnis der Angabe von Paketen mit ihren zu kennen Versionen wie some-package-1.0
. Zusammenfassend möchte ich also wissen, ob ich zwei spezifische Versionen wie some-package-1.0
und some-package-1.1
habe:
- Wird eine
yum install
unter 1.1 ausgeführt, nachdem 1.0 bereits installiert wurde, und 2 Pakete aufgelistet? - Wird
yum update some-package-1.1
erfolgreich ersetzensome-package-1.0
?
Antwort
Der Major Unterschiede zwischen YUM und RPM bestehen darin, dass yum
weiß, wie Abhängigkeiten aufgelöst werden, und diese zusätzlichen Pakete bei der Arbeit beziehen kann. rpm
kann Sie zwar auf diese Abhängigkeiten aufmerksam machen, es können jedoch keine zusätzlichen Pakete bereitgestellt werden.
In Bezug auf Installation und Aktualisierung. 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 YUM können Sie also nicht mehrere Versionen installieren.
yum update
reagiert auf zwei Arten. Wenn Sie ihm ein Paket mitteilen, das Sie aktualisieren möchten, wird er dies versuchen, indem er alle erforderlichen Abhängigkeiten herunterlädt und auch installiert. Wenn Sie es ohne Paketnamen ausführen, versucht yum update
, jedes Paket zu aktualisieren, das auf Ihrem System installiert ist.
If Wenn Sie yum upgrade
verwenden, funktioniert dies genauso wie yum update
, außer dass versucht wird, alle als „veraltet“ gekennzeichneten Pakete zu entfernen.
Beispiel
Hier ist ein Szenario, das Ihrem eigenen nicht unähnlich ist. Eine neue Version von vim-X11
ist 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 in 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
- Wird eine
yum install
für 1.1 ausgeführt, nachdem 1.0 bereits installiert wurde, 2 Pakete auflisten?
Nein. YUM führt weiterhin ein Update durch, auch wenn Sie es angewiesen haben, eine Installation durchzuführen, wenn das Paket bereits installiert ist.
- Wird das Ausführen von
yum update some-package-1.1
erfolgreich ein Paket 1.0 ersetzen?
Ja.
Kommentare
- Vielen Dank für die ausführliche Antwort. So wie ich es sehe, kann ich
yum install
einfach weiter verwenden, wenn ich den Paketnamen mit der Version spezifiziere und mich nicht darum kümmere, mehrere Versionen zu installieren. Eine Situation, in der ichyum update
verwenden möchte, wäre, wenn ich nur den richtigen Paketnamen angeben würde? - @aspiringCodeArtisan – dass ' ist teilweise korrekt.
yum install
erkennt, dass ein Paket bereits installiert ist, und wechselt zur Aktualisierung im Vergleich zur Installation, wie in meinem Beispiel gezeigt. - @slm – Zur Verdeutlichung kann RPM-Suche in einem Repository ähnlich der Zypper-Suche nach einem bestimmten Paket?
- @Motivated – no
rpm
entsprichtdpkg
Es geht nur darum, die Dateien auf der lokalen Festplatte zu verwalten. Für das Repository " Management " s / w Ihres Systems + eines Repos benötigen Sie etwas wieyum
oderdnf
. - @Motivated –
rpm
bei Verwendung zur Installation von einer URL nicht ' Sie müssen keine Paket-Dep ausführen, um sie auch abzurufen. Sie laden lediglich die Drehzahl lokal herunter und installieren sie dann.