当前位置: 首页>>技术教程>>正文


如何列出Debian/Ubuntu Linux系统上安装的所有或特定软件包

, ,
有多种方法可以确定系统上是否已安装特定的软件包。首先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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8561.html,未经允许,请勿转载。