Answers:
dpkg -l | grep -c '^ii'
有一些微妙的变体,例如dpkg -l | grep -c '^?i'
是否要包含已安装但已要求将其删除的软件包。另一种方法是
aptitude search '~i' |wc -l
您甚至可以直接戳入dpkg数据库:
sh -c 'set /var/lib/dpkg/info/*; echo $#'
这包括尚未安装但剩余配置文件的软件包。您可以使用列出这些dpkg -l | grep '^rc'
。
我一直在使用的是:
dpkg --get-selections | wc --lines
这将为您提供已安装软件包的数量。
如果要查找是否安装了特定的软件包,请使用:
dpkg --get-selections | grep <package>
我相信这将解决Gilles关于包括其他未安装的软件包的抱怨。
对于实例,您可以执行以下操作:
dpkg-query -l | nl | tail -1 | awk '{print $1}'
nl | tail -1 | awk '{print $1}'
可以报告输入中的行数(除非,如果没有输入,它将不报告而不是报告0
)-但是当其他答案已经在使用时,为什么您会建议这样做wc -l
呢?
rc
的计数中包括标题行和一些未安装的程序包(例如(已卸载但剩余配置文件))。