如何列出Debian已安装软件包 dpkg -l命令使用详解

dpkg -l 是 debian 系统中用于列出已安装软件包的命令。1. 直接运行 dpkg -l 可查看所有已安装包,其中 “ii” 表示正常安装;2. 使用 dpkg -l 包名 或通配符可查找特定包;3. 通过重定向可将列表保存至文件;4. 结合 less、grep 可优化输出查看效果。

如何列出Debian已安装软件包 dpkg -l命令使用详解

在Debian系统中,查看已安装的软件包是日常维护和排查问题时经常需要做的事情。最直接的方法就是使用dpkg -l命令。

如何列出Debian已安装软件包 dpkg -l命令使用详解

什么是 dpkg -l

dpkg是Debian系linux下的一个基础包管理工具,可以用来安装、卸载、查询.deb格式的软件包。而dpkg -l的作用是列出当前系统上所有已安装的软件包信息。

如何列出Debian已安装软件包 dpkg -l命令使用详解

运行这个命令后,默认会输出类似如下的内容:

Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||=================== Name =================== Version ================= Description ii  bash                        5.2-2           GNU Bourne Again SHell ii  coreutils                   9.1-1           GNU core utilities ...

每一列都有特定含义:

如何列出Debian已安装软件包 dpkg -l命令使用详解

  • 第一列(Desired)表示期望状态,通常我们不太关注。
  • 第二列(Status)显示的是当前安装状态,其中ii表示正常安装。
  • 接下来的两列分别是软件包名称、版本号和简要描述。

如果你只想看到已安装的包列表,可以加上管道过滤:

dpkg -l | grep '^ii'

这样就能只显示已经正常安装的软件包了。

如何查找特定软件包是否已安装

如果你知道软件包的名字,想确认它是否已经安装,不需要翻看长长的列表。可以直接用dpkg -l 包名来快速查找。

例如:

dpkg -l nginx

如果系统中安装了nginx,就会显示出对应的信息;如果没有安装,则只会显示表头,没有数据行。

你也可以使用通配符进行模糊匹配,比如:

dpkg -l '*lib*'

这会列出所有名字中包含“lib”的已安装包。

怎么把已安装列表保存下来

有时候我们需要将当前系统的软件包列表导出备份或用于迁移。可以通过重定向的方式把结果保存到文件里:

dpkg -l > installed_packages.txt

或者只保存实际安装的包:

dpkg -l | grep '^ii' > installed_packages.txt

这个文件可以用作参考,或者在恢复系统时作为安装依据。配合apt命令可以批量重新安装这些包:

cat installed_packages.txt | awk '{print $2}' | xargs sudo apt install -y

不过要注意,这种方式适用于相同或兼容的系统环境,否则可能遇到包名变化或依赖问题。

小技巧:结合less分页查看

系统安装了很多软件包时,直接运行dpkg -l会导致信息刷屏太快,根本看不清。这时候可以结合less命令分页查看:

dpkg -l | less

这样就可以按上下键一行行浏览,按q退出。

另外,如果你习惯使用颜色高亮来区分不同状态,也可以加个别名或使用grep –color来增强可读性:

dpkg -l | grep -E '^ii|^un' --color=always | less -r

这会把已安装和未安装但有配置的条目用颜色区分开来,看起来更清晰。

基本上就这些。
dpkg -l虽然简单,但在系统管理和调试中非常实用。掌握几个常用组合,能让你更快地了解系统状态。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享