有多种方法可以确定系统上是否已安装特定的软件包。首先
dpkg
该命令将列出系统上所有当前安装的软件包:
# dpkg -l
在这里,我们可以通过提供软件包名称作为参数来搜索特定的软件包:
# dpkg -l hello
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=================-=============-=============-========================================
ii hello 2.9-2+deb8u1 amd64 example package based on GNU hello
从上面dpkg
的命令输出,我们可以得出以下结论:hello
软件包当前已安装在我们的系统中。万一关于dpkg
输出不会产生任何输出意味着包装hello
未安装。在我们不完全知道要搜索的包名称的情况下,可以使用元字符来匹配可能的名称。
# dpkg -l 'h*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=================-=============-=============-========================================
ii hello 2.9-2+deb8u1 amd64 example package based on GNU hello
un hello-debhelper (no description available)
un hello-traditional (no description available)
un hoogle (no description available)
un hostapd (no description available)
ii hostname 3.15 amd64 utility to set/show the host name or dom
un hurd (no description available)
但是,在这种情况下,我们还会列出已卸载un
包。要仅列出已安装的软件包,我们可以将输出通过管道传递到grep:
# dpkg -l 'h*' | grep ^ii
ii hello 2.9-2+deb8u1 amd64 example package based on GNU hello
ii hostname 3.15 amd64 utility to set/show the host name or domain name
上述的另一种选择dpkg
命令是使用-s
状态选项。例如:
# dpkg -s hello