Comment puis-je demander à yum d'installer une version spécifique du paquet X?

226

S'il y a deux versions (ou plus) d'un RPM donné disponibles dans un référentiel YUM, comment puis-je demander yumà installer la version souhaitée?

En regardant à travers le service de compilation Koji, je remarque qu'il existe plusieurs versions.

    SS n ° 1

slm
la source

Réponses:

310

Pour voir quelles versions particulières sont disponibles via yumvous, vous pouvez utiliser le --showduplicatescommutateur. Il vous donne une liste du type "nom du paquet.architecture version":

$ yum --showduplicates list httpd | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
 * fedora: mirror.steadfast.net

Available Packages
httpd.x86_64                        2.4.6-6.fc20                         fedora 
httpd.x86_64                        2.4.10-1.fc20                        updates

En ce qui concerne l'installation d'une version particulière? Vous pouvez ajouter les informations de version au nom du package, en supprimant le nom de l'architecture, comme suit:

$ sudo yum install <package name>-<version info>

Par exemple, dans ce cas, si je voulais installer l'ancienne version 2.4.6-6, je procéderais comme suit:

$ sudo yum install httpd-2.4.6-6

Vous pouvez également inclure les informations de version lorsque vous spécifiez un package. Dans ce cas, étant donné que je traite avec Fedora 20 (F20), les informations de publication sont "fc20" et les informations d’architecture également.

$ sudo yum install httpd-2.4.6-6.fc20
$ sudo yum install httpd-2.4.6-6.fc20.x86_64

repoquerie

Si vous n'êtes pas sûr que vous construisez les arguments correctement, vous pouvez également consulter repoquery.

$ sudo yum install yum-utils  # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*
httpd-0:2.4.6-6.fc20.x86_64
httpd-0:2.4.10-1.fc20.x86_64

téléchargement et installation

Vous pouvez également utiliser l'une des options suivantes pour télécharger un RPM particulier à partir du Web, puis l'utiliser yumpour l'installer.

$ yum --downloadonly <package>
-or-
$ yumdownloader <package>

Et puis installez-le comme suit:

$ sudo yum localinstall <path to rpm>

Et si je veux télécharger tout ce dont le paquet X a besoin?

$ yumdownloader --resolve <package>

Exemple

$ yumdownloader --resolve vim-X11
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
--> Running transaction check
---> Package vim-X11.x86_64 2:7.3.315-1.fc14 set to be reinstalled
--> Finished Dependency Resolution
vim-X11-7.3.315-1.fc14.x86_64.rpm                              | 1.1 MB     00:01

Notez qu’il effectue une vérification des dépendances, puis télécharge les pièces manquantes. Voir ma réponse qui couvre cela plus en détail ici: Comment télécharger un fichier de repo, et l'installer plus tard sans connexion Internet? .

Références

slm
la source
1
Je ne pense pas que cela fonctionne pour les paquets entre la dernière version localisée @updateset la version initiale pour le système d'exploitation situé @fedora. Par exemple, si vous essayez d'installer httpd-2.4.8-1, yumle paquet n'est pas disponible.
Question Débordement
@QuestionOverflow - ne suit pas. Cette version ne montre pas comme étant disponible dans le repo.
slm
1
Laissez-moi essayer à nouveau avec un exemple réel tiré de mon journal miam. python-libs-2.7.5-12.fc20.x86_64a déjà été installé sur mon ordinateur, mais a depuis été remplacé. En supposant maintenant que je veux installer ce paquet spécifique, yumdownloader python-libs-2.7.5-12*dirais-je No Match for argument python-libs-2.7.5-12* Nothing to download. Ce que j'essaie de dire, c'est qu'une fois qu'un nouveau colis arrivera, l'ancien ne serait plus accessible à partir de miam. Vous pouvez uniquement installer le dernier package ou la version initiale, mais pas les versions intermédiaires.
Question Débordement
2
@QuestionOverflow - Dans ce scénario, je pense que vous devez utiliser yum downgrade ...si le paquet a déjà été installé et que vous essayez d'y revenir plus tard. Dans mon QI, j'essayais de montrer comment sélectionner une version particulière d'un paquet qui n'avait pas encore été installé. docs.fedoraproject.org/en-US/Fedora/14/html/…
slm
Non, cela ne fonctionne pas même lors de la mise à niveau vers un package spécifique. J'ai expérimenté cela avec une nouvelle installation il y a quelques jours. Vous ne pouvez que mettre à jour le dernier paquet et pas la version de votre choix.
Question débordement
6

Une autre option, vous pouvez télécharger le rpmfichier puis demander yumà localinstall:

yum localinstall /path/to/package.rpm

Un bon endroit pour obtenir les paquets dont vous avez besoin est rpmfind.com et recherchez le nom du paquet.

cuonglm
la source
Existe-t-il une URL contenant la plupart, sinon toutes les versions des fichiers rpm?
Question Débordement
@QuestionOverflow: rpmfind.net
jeudi
4
Il y a aussi yum --downloadonly <package>, suivi de yum localinstall <path to package>aussi. Vous pouvez également utiliser l'utilitaire yumdownloader <package>aussi.
slm
0

Vous pouvez également utiliser la commande option:

yum install --nogpgcheck pckg-name-version   
Guillermo Castellon
la source