在(K)ubuntu 中真正安装的软件包

在(K)ubuntu 中真正安装的软件包

1)第一个问题

如何列出真的在 ubuntu 中安装了软件包吗?

dpkg --get-selections(几乎所有论坛中写的命令)的问题在于,它的第二列(即install/ deinstall)完全取决于先前发出的命令(我的意思是dpkg --set-selectionsdpkg --clear-selections),但不取决于包的实际状态(是否安装)。

2)第二个问题

我(调查上述问题)偶尔执行命令 - dpkg --clear-selections,现在几乎所有包都处于deinstall状态。那么我如何更新包的状态(并使它们与输出的状态一致aptitude show <pkg_name>)?

答案1

要获取已安装包的列表,请运行以下命令:

dpkg -l | grep -c ^.i

dpkg -l将列出所有可用的软件包,第一个字段由状态代码组成。具体来说(来自man dpkg):

The  first  three columns of the output show the desired action,
the package status, and errors, in that order.

Desired action:
 u = Unknown
 i = Install
 h = Hold
 r = Remove
 p = Purge

Package status:
 n = Not-installed
 c = Config-files
 H = Half-installed
 U = Unpacked
 F = Half-configured
 W = Triggers-awaiting
 t = Triggers-pending
 i = Installed

Error flags:
  <empty> = (none)
  R = Reinst-required

因此,第二个字符为 的行i描述已安装的软件包。因此,传递输出grep -c ^.i将返回第二个字符为 的行数i,即您当前已安装的软件包数。

相关内容