I install many packages for Debian / Ubuntu Linux from both stable/testing environment but some time I need to find out installed package is from stable or testing environment. I can use dpkg status file to get this information. But Debian comes with perl script called apt-show-versions which lists available package versions with distribution.
apt-show-versions parses the dpkg status file and the APT lists for the installed and available package versions and distribution and shows upgrade options within the specific distribution of the selected package. apt-show-versions uses caching for the status information of installed and available packages. If you run apt-show-versions as root the cache is updated as needed. If you run as non-root uses the newest available information, but canâ€™t update the cache. If you run as root with the option -i the cache is initialized or updated only.
This is really useful if you have a mixed stable/testing environment and want to list all packages which are from testing and can be upgraded in testing.
Type the following command at shell prompt:
$ sudo apt-get install apt-show-versions
Just type command apt-show-versions:
java-common/testing uptodate 0.23 libperl5.8/testing upgradeable from 5.8.7-10 to 5.8.8-2 sysutils/testing upgradeable from 2.0.0-1 to 2.0.1 autoconf/unstable uptodate 2.59a-8
To upgrade all packages in testing you can type command:
# apt-get install $(apt-show-versions -u -b | fgrep testing)
Find out a list of all available versions of postgresql database server:
$ apt-show-versions -a -p postgresql