Under arbejdet med rpm
-kommandoen bemærkede jeg, at hvis jeg installerede some-package-1.0
og derefter udført en anden rpm -ivh some-package-1.1
begge pakker vises, når jeg laver en rpm -qa | grep some-package
som følgende :
some-package-1.0 some-package-1.1
I stedet for at installere 1.1 får jeg dog det ønskede resultat af en hvis jeg opgraderer via rpm -Uvh some-package-1.1
enkelt pakke (1.1) når jeg gør rpm -qa | grep some-package
.
Nu gælder den samme adfærd med yum install
og yum update
?
Jeg spørger, for med rpm -U
(opgradering) -kommandoen behøver en pakke ikke at eksistere for at opgradere / installer men med yum update
(hvis jeg ikke tager fejl) skal der allerede findes en pakke.
Jeg er især interesseret i at kende resultatet af at specificere pakker med deres versioner såsom some-package-1.0
. Så i opsummering er det, jeg vil vide, om jeg har to specifikke versioner som some-package-1.0
og some-package-1.1
:
- Vil udføre en
yum install
den 1.1 efter 1.0 allerede er installeret, liste 2 pakker? - Kører
yum update some-package-1.1
erstatsome-package-1.0
?
Svar
Major forskellene mellem YUM og RPM er, at yum
ved, hvordan man løser afhængigheder og kan hente disse ekstra pakker, når de udfører sit arbejde. Selvom rpm
kan advare dig om disse afhængigheder, er den ikke i stand til at hente yderligere pakker.
Hvad angår installation versus opgradering. Begge værktøjer kan udføre en installation, og RPM giver endda dig mulighed for at installere flere versioner samtidigt, men YUM vil fortælle dig, at denne pakke allerede er installeret. Så ingen YUM tillader dig ikke at installere flere versioner.
Hvad angår yum update
, vil dette reagere på en af to måder. Hvis du fortæller det en pakke, som du vil opdatere, forsøger den at gøre det ved at downloade alle de nødvendige afhængigheder og installere dem også. Hvis du kører det uden noget pakkenavn, vil yum update
forsøge at opdatere hver pakke, der er installeret på dit system.
Hvis du bruger yum upgrade
, det gør det samme som yum update
, bortset fra at det forsøger at fjerne eventuelle pakker, der er markeret som “forældede”.
Eksempel
Her er et scenarie, der ikke ligner dit eget. En ny version af vim-X11
er tilgængelig.
$ 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
Og jeg er i øjeblikket i denne version:
$ rpm -q vim-X11 | expand vim-X11-7.4.179-1.fc19.x86_64
Når vi prøver at installere det:
$ 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
Så i resumé
- Vil du udføre en
yum install
den 1.1 efter 1.0 allerede er installeret, liste 2 pakker?
Nej. YUM udfører stadig en opdatering, selv når du har bedt den om at udføre en installation, hvis pakken allerede er installeret.
- Vil <-id = "54c4206021">
erstatte some-package-1.0 med succes?
Ja.
Kommentarer
- Tak for det meget detaljerede svar. Så som jeg ser det, kan jeg bare fortsætte med at bruge
yum install
, når jeg angiver pakkenavn med version og ikke er bekymret for, at det installerer flere versioner. En situation, hvor jeg gerne vil brugeyum update
, ville være, når jeg kun angiver pakkens navn, korrekt? - @aspiringCodeicialan – at ' er delvist korrekt.
yum install
registrerer, at en pakke allerede er installeret og skifter til opdatering versus installation af den, som mit eksempel viste. - @slm – For at afklare kan rpm søge i et arkiv svarende til zypper-søgning efter en bestemt pakke?
- @Motivated – ingen
rpm
er somdpkg
, det vedrører kun sig selv med administration af filerne på den lokale disk. For lager " management " sort / hvidt dit system + en repo har du brug for noget somyum
ellerdnf
. - @Motivated –
rpm
når det bruges til at installere fra en url, ' Foretag ikke en pakke for at trække dem ind, den downloader kun omdrejningstallet lokalt og installerer det derefter.