26

I would like to know how to get the version information of an installed program that doesn't have the

--version or -version

method implemented.

Radu Rădeanu
  • 174,437
  • I know you mean for any program, but can you say which program exactly? –  Jan 28 '12 at 14:53

4 Answers4

29

You can use dpkg or apt-cache.

To check the version of bash, for example:

dpkg -l bash

apt-cache show bash
Panther
  • 104,796
  • For those just looking for general Linux answers, the equivalent to the above for RHEL/CentOS/Fedora (and similar) would be yum requires <file> e.g. yum requires ssh-keygen would give you your openSSH version. – Seldom 'Where's Monica' Needy Apr 28 '16 at 20:31
  • 1
    @SeldomNeedy - yum is depreciated on Fedora, Fedora uses dnf. Centos/RHEL still on yum. – Panther Apr 28 '16 at 21:18
7

If the program doesn't have any command line option that displays version information you can try to use dpkg to get the package version which usually contains the program version ion some way.

dpkg -S "$(which YOUR_PROGRAM)"

prints the package that contains YOUR_PROGRAM, and

dpkg --status YOUR_PACKAGE | grep ^Version

prints the version of YOUR_PACKAGE.

You can put it all together:

dpkg --status "$(dpkg -S "$(which YOUR_PROGRAM)" | cut -d: -f1)" | grep ^Version

Use it for example like this for ls:

dpkg --status "$(dpkg -S "$(which ls)"| cut -d: -f1)"| grep ^Version
2

The below command also gives you the exact installed package version.

apt-cache policy <package-name> | grep Installed: | cut -d: -f2

Example

$ apt-cache policy firefox | grep Installed: | cut -d: -f2
24.0+build1-0ubuntu1

$ apt-cache policy gedit | grep Installed: | cut -d: -f2
3.8.3-0ubuntu3
Avinash Raj
  • 80,616
2

You can use dpkg-query to get the version of a package:

$ dpkg-query -W -f='${binary:Package} ${Version}\n' firefox
firefox 29.0+build1-0ubuntu0.13.10.3

To only get the version string:

$ dpkg-query -W -f='${Version}\n' firefox
29.0+build1-0ubuntu0.13.10.3