如何列出具有特定版本号的所有已安装软件包?

我想列出所有已安装的软件包,并在我的系统上列出特定的版本号。 我检查了dpkg --get-selections ( 如何列出所有已安装的软件包 ),但它没有告诉我我需要什么。 例如:

 $ dpkg --get-selections apache2 apache2 install 

显示安装了apache2,但不是版本。 我最近做了一个apt-get upgrade所以apache2.2.22-1 应该安装版本( http://packages.ubuntu.com/precise-updates/apache2.2-common ),但我怎么能显示呢?

谢谢!

请改用dpkg -l

例:

 dpkg -l | grep '^ii' | grep skype 

输出:

 alaa @ aa-lu:〜$ dpkg -l |  grep'^ ii'|  grep skype
 ii skype 4.2.0.11-0ubuntu0.12.04.2用于Skype VOIP的i386客户端...

如果您只想提取名称和版本,可以执行以下操作:

 dpkg -l | grep '^ii' | grep skype | awk '{print $2 "\t" $3}' 

这将只打印上面输出的第二和第三列,如下所示:

 alaa @ aa-lu:〜$ dpkg -l |  grep'^ ii'|  grep skype |  awk'{print $ 2“\ t”$ 3}'
 skype 4.2.0.11-0ubuntu0.12.04.2

当然,如果要列出所有已安装的软件包及其版本,而不仅仅是Skype,那么只需删除grep skype部分即可生成如下命令:

 dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}' 

使用

 dpkg-query --show apache2 

获取包apache2和的版本号

 dpkg-query --show 

获取所有已安装软件包的版本号