382

My questions are divided into two parts:

  1. How to know the version of installed package?
  2. How to install a specific package version?
1
  • 20
    Please do not vote to delete this post. It is useful as a signpost. Duplicates serve to guide others to the right Q&A.
    – terdon
    Aug 17 '16 at 13:39
478

How to know the version of installed package?

apt-cache policy <package name>

The above command will shows installed package version and also all the available versions in the repository according to the version of Ubuntu in which you are running.It doesn't display the package version which was intended for another version of Ubuntu(not your's).

Example:

$ apt-cache policy gparted
gparted:
  Installed: 0.16.1-1
  Candidate: 0.16.1-1
  Version table:
 *** 0.16.1-1 0
        500 http://ubuntu.inode.at/ubuntu/ saucy/main amd64 Packages
        100 /var/lib/dpkg/status

So the installed gparted version is 0.16.1-1.

How to install a specific package version?

sudo apt-get install <package name>=<version>

Example:

$ sudo apt-get install gparted=0.16.1-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gparted is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 265 not upgraded.
9
  • 1
    Can you please give more details for the second command? Are there any limitations? For example, could someone on 12.04 install a version of a package available in 13.10?
    – DK Bose
    Mar 3 '14 at 11:03
  • 6
    In every case I've ever tried this I always get the error The following packages have unmet dependencies:, followed by a list of packages. Any way to make it resolve that automatically?
    – Hubro
    Dec 5 '16 at 4:32
  • 2
    Please note that it will most likely fail, because there is usually only 1 or 2 versions of the package that are available in the repository. If you want a different version than currently designed for your distribution, you might need to download it and install with sudo dkpg -i <package-file>. Dependency errors need to be resolved by downloading and installing (also with dkpg) all missing packages (this can take many iterations). Alternatively you can download the program source code, compile it and install it (this also requires manual dependency resolution). Jan 3 '17 at 9:16
  • 2
    To list all options: apt list madison <package name> Jan 25 '19 at 13:48
  • 2
    @dualed apt understands madison as a <packagename>, so it does nothing if that package does not exist (You can test it with apt list asdasdas <packagename>). Your command is the correct one -> apt list -a <packagename>
    – Madacol
    Feb 17 '20 at 21:15
20

There is no general way to check the version of installed packages, but most of them can be checked using the command:

command -v 

for example to know the version of apache2:

apache2 -v

But this may not work with other packages so the best practice is to search the manual.

man XXX

and search for the option of showing the version.

To install a specific version of a package:

sudo apt-get install package=version

For example:

sudo apt-get install apache2=2.3.35-4ubuntu1
5
  • 15
    we can also check version of installed package using dpkg -l package-name
    – Nischay
    Mar 3 '14 at 9:37
  • 11
    Where do you find/track down the meta 2.3.35-4ubuntu1 when specifying the version?
    – Erutan409
    May 23 '16 at 15:32
  • 6
    @Erutan409 - use apt-cache madison packagename - it will display all versions that can be seen by whatever repos you have installed/configured (including PPAs)
    – ivanivan
    Apr 14 '18 at 0:38
  • When -v doesn't work, you can also try --version.
    – MSpreij
    Sep 13 '19 at 11:15
  • -V will work. Not small 'v'
    – Malavan
    Dec 12 '19 at 7:05