236

This question already has an answer here:

My questions are divided into two parts:

  1. How to know the version of installed package?
  2. How to install a specific package version?

marked as duplicate by karel, Braiam, BuZZ-dEE, Richard, Florian Diesch Mar 4 '14 at 23:35

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 9
    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
317

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.
  • 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
  • 4
    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
  • 1
    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). – nuoritoveri Jan 3 '17 at 9:16
  • 1
    To list all options: apt list madison <package name> – FabricioFCarv Jan 25 at 13:48
9

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
  • 9
    we can also check version of installed package using dpkg -l package-name – Nischay Mar 3 '14 at 9:37
  • 3
    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
  • 2
    @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 at 11:15