511

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
  • 24
    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, 2016 at 13:39

2 Answers 2

613

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.
11
  • 8
    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, 2016 at 4:32
  • 6
    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, 2017 at 9:16
  • 3
    To list all options: apt list madison <package name> Jan 25, 2019 at 13:48
  • 3
    @FabricioFCarv what is madison? I found apt list -a <packagename> works (apt list even hints the -a switch when more than one package version is available)
    – dualed
    Sep 16, 2019 at 10:19
  • 4
    @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, 2020 at 21:15
32

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
  • 17
    we can also check version of installed package using dpkg -l package-name
    – Nischay
    Mar 3, 2014 at 9:37
  • 12
    Where do you find/track down the meta 2.3.35-4ubuntu1 when specifying the version?
    – Erutan409
    May 23, 2016 at 15:32
  • 10
    @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, 2018 at 0:38
  • When -v doesn't work, you can also try --version.
    – MSpreij
    Sep 13, 2019 at 11:15
  • -V will work. Not small 'v'
    – Malavan
    Dec 12, 2019 at 7:05