查找已安装的软件包和版本

查找已安装的软件包和版本

我对 ubuntu 很陌生,我正在尝试找到一个命令来告诉我在我的“沙箱”上安装了哪些软件包和版本,我希望将其捆绑为输出文件

答案1

您的问题可能会被标记为重复,因为您需要在 StackExchange 网站上发布之前进行一些自己的研究。但是,由于可能的重复(如何列出所有已安装的软件包)没有涉及版本信息,这是您的答案:

dpkg -l | grep "^ii" | awk '{print $2,$3}'

或者

dpkg -l | awk '/^ii/ {print $2,$3}'

解码:

dpkg -l列出所有软件包,包括已被删除的软件包。

grep "^ii"仅打印以“ii”开头的行(以排除已删除的软件包,通常标记为“rc”)。请注意,已安装的软件包可能并不总是处于“ii”状态。此命令将检查:dpkg -l | grep -v "^ii" | grep -v "^rc" | tail -n +6

awk '{print $2,$3}'打印第二列和第三列(分别是包名称和版本)。

附言:我之前写过一些关于这个的评论,但是我的代码是错误的。

答案2

我知道您可以使用它dpkg --get-selections | awk '{print $1}'来查看所有已安装的软件包。但不确定版本,如果我发现其他内容,我会告诉您

答案3

虽然从输出中选择字段dpkg -l当然可行,但更基本的dpkg-query命令允许自定义输出字段和格式,而无需借助其他文本处理工具。实际上,纯文本

dpkg-query -W

没有明确的格式字符串会给出一个制表符分隔的包名称和版本列表(相当于dpkg -l | awk '{print $2,$3}'),如下所述man dpkg-query

-W, --show [package-name-pattern...]
       Just like the --list option this will list all packages matching
       the  given  pattern.  However the output can be customized using
       the --showformat option.  The default output  format  gives  one
       line  per  matching package, each line having the name (extended
       with the architecture qualifier for  Multi-Arch  same  packages)
       and installed version of the package, separated by a tab.


如果你想要更漂亮的输出,更类似于dpkg -l你可以使用类似的东西

dpkg-query -W -f='${binary:Package;-25}\t${Version}\n'

在宽度为 25 列的字段中将包名称左对齐,或者

dpkg-query -W -f='${db:status-abbrev}\t${binary:Package;-25}\t${Version}\n'

ii在每行的开头包含等状态标志。

相关内容