297

My questions are divided into two parts:

  1. How to know the version of installed package?
  2. How to install a specific package version?
  • 15
    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
386

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.
| improve this answer | |
  • 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
  • 1
    In aptitude pressing Enter on the package name displays information about the package and on the bottom of this screen there is a list of the available versions. – karatedog Feb 12 '16 at 8:36
  • 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
    To list all options: apt list madison <package name> – FabricioFCarv 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 at 21:15
15

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
| improve this answer | |
  • 10
    we can also check version of installed package using dpkg -l package-name – Nischay Mar 3 '14 at 9:37
  • 6
    Where do you find/track down the meta 2.3.35-4ubuntu1 when specifying the version? – Erutan409 May 23 '16 at 15:32
  • 1
    @Erutan409 The comment above yours is how you can do that. – user124384 Jul 25 '16 at 17:03
  • 4
    @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