我比较了
$ dpkg --get-selections | grep -v deinstall | awk ' { print $1 } ' > dpkg.txt
$ apt-mark showmanual > manual.txt
$ apt-mark showauto > auto.txt
我觉得
- dpkg.txt 将是全部包
- manual.txt 将是“主要”包
- auto.txt 将是 manual.txt 中包的依赖项
我检查了一下,dpkg.txt 正如我所料,是 auto.txt 和 manual.txt 的“总和”,但我在 auto.txt 中看到了“主要”包,例如 apport、locate、unzip、zip,在 manual.txt 中看到了许多 lib 文件(依赖项?)。
这是为什么?
我已经看过了man apt-mark
但这并不能解释我的问题:
展会汽车 showauto 用于打印自动安装的软件包列表,每个软件包占一行。所有自动安装的软件包 如果没有指定软件包,则将列出软件包。如果指定了软件包,则仅显示自动安装的软件包。
和
展示手册 showmanual 的使用方式与 showauto 相同,只是它会打印手动安装的软件包列表。
我还指出我没有使用apt-mark auto
或标记包apt-mark manual
。
请注意,我的系统没有任何问题。这仅供我了解。
答案1
我们不能仅仅说apt-mark showmanual
显示自动安装的依赖项。
一些通常会自动安装的软件包被标记为其他类型,因为它们或它们的依赖者在特殊部分中。
因此,如果你这样做,这是正常的:
$ apt-get install foo
NEW: foo
你可以将其视为手动安装
另一方面,如果是:
$ apt-get install foo
NEW: foo foo-data
foo-data 将显示为自动安装。
莫罗弗
如果 foo 自动安装并且您执行以下任务:
$ apt-get install foo
在操作结束时,foo 将被标记为手动安装。
我们要求机器聪明,但机器却很笨。我们可能没有安装Xserver
手动安装的(你一定在想我什么时候手动安装了 Xserver),但安装程序安装了,因为它认为我们需要它,不想删除它。安装
gnome
和标记一切gnome
取决于manual
因为用户认为仅删除(元包)gnome
不会自动删除他们习惯的所有 gnome 应用程序。
然后我们按照教程或者使用来自可疑来源的蹩脚安装程序脚本等疾病之一apt-get install everything
。
这不同于您了解哪些软件包是由您安装的,而不是某些自动化过程的用例。有时可能会重叠,但并非总是如此。您必须面对的大问题是,很难确定是您还是软件订购了安装。很多时候两者都是。
例子:安装软件包(为您)以启用硬件支持(为您)的应用程序。[您看到我在这里做了什么吗?]是这个auto
还是manually installed
?
第一的:自动安装的软件包已设置“自动安装:1”标志。
第二:如果您没有数据,则默认使用安全选项,这里是“自动安装:0”(=手动安装),因为它不会删除任何东西。
因此,您不能说一个包含完全手动安装,另一个包含完全自动安装。
(这也有历史原因,因为这种跟踪并不是从一开始就实施的,而且有一段时间人们非常关心升级)。