How can I instruct yum to install a specific version of package X?

If there are two (or more) versions of a given RPM available in a YUM repository, how can I instruct yum to install the version I want?

Looking through the Koji build service I notice that there are several versions.

    ss #1

Asked By: slm


To see what particular versions are available to you via yum you can use the --showduplicates switch . It gives you a list like “package name.architecture     version”:

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

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

As far as installing a particular version? You can append the version info to the name of the package, removing the architecture name, like so:

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

For example in this case if I wanted to install the older version, 2.4.6-6 I’d do the following:

$ sudo yum install httpd-2.4.6-6

You can also include the release info when specifying a package. In this case since I’m dealing with Fedora 20 (F20) the release info would be “fc20”, and the architecture info too.

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


If you’re ever unsure that you’re constructing the arguments right you can consult with repoquery too.

$ sudo yum install yum-utils  # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*

downloading & installing

You can also use one of the following options to download a particular RPM from the web, and then use yum to install it.

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

And then install it like so:

$ sudo yum localinstall <path to rpm>

What if I want to download everything that package X requires?

$ yumdownloader --resolve <package>


$ 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

Notice it’s doing a dependency check, and then downloading the missing pieces. See my answer that covers it in more details here: How to download a file from repo, and install it later w/o internet connection?.


Answered By: slm

Another option, you can download rpm file then instruct yum to do a localinstall:

yum localinstall /path/to/package.rpm

A good place to get the packages you need is and search the package name.

Answered By: cuonglm
Categories: Answers Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.