问题描述
我想列出所有已安装的软件包,以及系统上的特定版本号。我签出了dpkg --get-selections
(How to list all installed packages),但没有显示我需要的东西。例如:
$ 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 i386 client for Skype VOIP...
如果只想提取名称和版本,则可以执行以下操作:
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
获取所有已安装软件包的版本号