Tijdens het werken met het rpm
commando merkte ik dat als ik some-package-1.0
en vervolgens nog een rpm -ivh some-package-1.1
uitgevoerd, beide pakketten worden weergegeven als ik een rpm -qa | grep some-package
zoals het volgende doe :
some-package-1.0 some-package-1.1
In plaats van 1.1 te installeren, als ik upgrade via de rpm -Uvh some-package-1.1
, krijg ik het gewenste resultaat van een enkel pakket (1.1) als ik rpm -qa | grep some-package
doe.
Nu is hetzelfde gedrag van toepassing met yum install
en yum update
?
Ik vraag het omdat met het rpm -U
(upgrade) commando een pakket niet “hoeft te bestaan om te upgraden / installeer maar met yum update
(als ik me niet vergis) moet er al een pakket bestaan.
Ik ben vooral geïnteresseerd in het resultaat van het specificeren van pakketten met hun versies zoals some-package-1.0
. Dus samengevat, wat ik wil weten is of ik twee specifieke versies heb, zoals some-package-1.0
en some-package-1.1
:
- Zal het uitvoeren van een
yum install
op 1.1 nadat 1.0 al is geïnstalleerd, 2 pakketten weergeven? - Zal
yum update some-package-1.1
met successome-package-1.0
vervangen?
Antwoord
De belangrijkste verschillen tussen YUM en RPM zijn dat yum
weet hoe afhankelijkheden moeten worden opgelost en deze aanvullende pakketten kan vinden als hij zijn werk doet. Hoewel rpm
u kan waarschuwen voor deze afhankelijkheden, is het niet in staat om aanvullende pakketten te vinden.
Wat betreft installeren versus upgraden. Beide tools kunnen een installatie uitvoeren, en met RPM kun je zelfs meerdere versies tegelijk installeren, maar YUM zal je vertellen dat dat pakket al is geïnstalleerd. Dus geen enkele YUM staat je niet toe om meerdere versies te installeren.
Wat betreft yum update
, dit zal op twee manieren reageren. Als u een pakket vertelt dat u wilt bijwerken, zal het proberen dit te doen, alle noodzakelijke afhankelijkheden downloaden en ze ook installeren. Als u het zonder enige pakketnaam uitvoert, zal yum update
proberen om elk pakket dat op uw systeem is geïnstalleerd bij te werken.
Als je gebruikt yum upgrade
het zal hetzelfde doen als yum update
, behalve dat het zal proberen om alle pakketten te verwijderen die zijn gemarkeerd als “verouderd”.
Voorbeeld
Hier is een scenario dat niet veel lijkt op het uwe. Een nieuwe versie van vim-X11
is beschikbaar.
$ 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
En ik heb momenteel deze versie:
$ rpm -q vim-X11 | expand vim-X11-7.4.179-1.fc19.x86_64
Wanneer we het proberen te installeren:
$ 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
Dus samenvattend
- Zal het uitvoeren van een
yum install
op 1.1 nadat 1.0 al is geïnstalleerd, 2 pakketten weergeven?
Nee. YUM zal nog steeds een update uitvoeren, zelfs als je “hebt gezegd dat het moet installeren als het pakket al is geïnstalleerd.
- Zal het uitvoeren van
yum update some-package-1.1
met succes een pakket-1.0 vervangen?
Ja.
yum install
blijven gebruiken wanneer ik de pakketnaam specificeer met de versie en me niet druk maak om het installeren van meerdere versies. Een situatie waarin ikyum update
zou willen gebruiken, is wanneer ik alleen de pakketnaam specificeer, correct?yum install
zal detecteren dat een pakket al is geïnstalleerd en zal overschakelen naar updaten in plaats van installeren, zoals mijn voorbeeld toonde.rpm
is alsdpkg
, het betreft alleen zichzelf met het beheren van de bestanden op de lokale schijf. Voor repository " beheer " b / w je systeem + een repo heb je iets nodig alsyum
ofdnf
.rpm
wanneer gebruikt om te installeren vanaf een url heeft ' doe geen pakket dep om ze ook binnen te halen, het downloadt alleen de rpm lokaal en installeert het dan.