Différence entre la mise à jour yum et l'installation yum

20

En travaillant avec la rpmcommande, j'ai remarqué que si j'installe some-package-1.0puis exécute un autre, les rpm -ivh some-package-1.1deux packages seront répertoriés lorsque je ferai un rpm -qa | grep some-packagecomme le suivant:

some-package-1.0
some-package-1.1

Cependant, au lieu d'installer la version 1.1, si je mets à niveau via le, rpm -Uvh some-package-1.1j'obtiens le résultat souhaité d'un seul package (1.1) lorsque je le fais rpm -qa | grep some-package.

Maintenant, le même comportement s'applique-t-il avec yum installet yum update?

Je pose la question car avec la rpm -Ucommande (upgrade) un package n'a pas besoin d'exister pour mettre à niveau / installer mais avec yum update(si je ne me trompe pas) un package doit déjà exister.

Je suis particulièrement intéressé de connaître le résultat de la spécification de packages avec leurs versions telles que some-package-1.0. Donc en résumé, ce que je veux savoir, c'est si j'ai deux versions spécifiques telles que some-package-1.0et some-package-1.1:

  1. Est-ce que l'exécution d'un yum installsur 1.1 après 1.0 est déjà installé, liste 2 packages?
  2. L'exécution yum update some-package-1.1réussira- some-package-1.0t-elle à remplacer ?
kaizenCoder
la source

Réponses:

31

Les principales différences entre YUM et RPM sont celles qui yumsavent comment résoudre les dépendances et peuvent trouver ces packages supplémentaires lors de leur travail. Bien qu'il rpmpuisse vous alerter sur ces dépendances, il ne peut pas source de packages supplémentaires.

Quant à l'installation vs la mise à niveau. Les deux outils peuvent effectuer une installation, et RPM vous permettra même d'installer plusieurs versions simultanément, mais YUM vous dira que ce package est déjà installé. Donc, aucun YUM ne vous permettra d'installer plusieurs versions.

Quant à yum update, cela va réagir de deux manières. Si vous lui indiquez un package que vous souhaitez mettre à jour, il tentera de le faire, en téléchargeant toutes les dépendances nécessaires et en les installant également. Si vous l'exécutez sans nom de package, yum updatetentera de mettre à jour tous les packages installés sur votre système.

Si vous l'utilisez, yum upgradeil fera la même chose que yum update, sauf qu'il tentera de supprimer tous les paquets qui ont été marqués comme "obsolètes".

Exemple

Voici un scénario qui ne ressemble pas au vôtre. Une nouvelle version de vim-X11est disponible.

$ 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

Et je suis actuellement à cette version:

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

Lorsque nous essayons de l'installer:

$ 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 

Donc en résumé

  1. Est-ce que l'exécution d'un yum installsur 1.1 après 1.0 est déjà installé, liste 2 packages?

Non. YUM effectuera toujours une mise à jour même si vous lui avez demandé d'effectuer une installation si le package est déjà installé.

  1. L'exécution yum update some-package-1.1réussira-t-elle à remplacer some-package-1.0?

Oui.

slm
la source
Merci pour la réponse très détaillée. Donc, comme je le vois, je peux simplement continuer à utiliser yum installlorsque je spécifie le nom du package avec la version et ne pas me soucier de l'installation de plusieurs versions. Une situation où je voudrais utiliser yum updateserait quand je ne spécifie que le nom du package, correct?
kaizenCoder
@aspiringCodeArtisan - c'est partiellement correct. yum installdétectera qu'un package est déjà installé et passera à la mise à jour par rapport à son installation, comme mon exemple l'a montré.
slm
@slm - Pour clarifier, rpm peut-il rechercher un référentiel similaire à zypper pour rechercher un paquet particulier?
Motivé le
1
@Motivated - no rpmis like dpkg, il ne concerne que la gestion des fichiers sur le disque local. Pour la "gestion" du référentiel n / b votre système + un repo vous avez besoin de quelque chose comme yumou dnf.
slm
1
@Motivated - rpmlorsqu'il est utilisé pour installer à partir d'une URL, il ne fait aucun paquet pour les extraire, il télécharge simplement le rpm localement puis l'installe.
slm