web-dev-qa-db-fra.com

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

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

En parcourant le service de construction Koji, je remarque qu'il existe plusieurs versions.

ss #1

248
slm

Pour voir quelles versions particulières sont disponibles via yum, vous pouvez utiliser le --showduplicates commutateur. Il vous donne une liste comme "package name.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 ceci:

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

Par exemple, dans ce cas, si je voulais installer l'ancienne version, 2.4.6-6, je ferais ce qui suit:

$ Sudo yum install httpd-2.4.6-6

Vous pouvez également inclure les informations de version lors de la spécification d'un package. Dans ce cas, étant donné que je traite de Fedora 20 (F20), les informations de version seraient "fc20", ainsi que les informations d'architecture.

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

repoquery

Si vous n'êtes pas sûr de bien construire les arguments, 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 utiliser yum pour l'installer.

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

Et puis installez-le comme ceci:

$ Sudo yum localinstall <path to rpm>

Et si je veux télécharger tout ce dont le package 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 le couvre plus en détail ici: Comment télécharger un fichier depuis le référentiel et l'installer plus tard sans connexion Internet? .

Références

336
slm

Une autre option, vous pouvez télécharger le fichier rpm puis demander à yum de faire un localinstall:

yum localinstall /path/to/package.rpm

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

6
cuonglm

Vous pouvez également utiliser la commande d'option:

yum install --nogpgcheck pckg-name-version   
0