如何找出哪些已安装的包是重要的?

如何找出哪些已安装的包是重要的?

我在我的电脑上安装了许多附加软件包。dpkg --get-selections命令显示所有已安装的软件包。从已安装的软件包中,我如何知道哪些软件包对于系统启动很重要(如果我们从重要软件包列表中删除任何一个软件包,系统将无法启动,或者系统无法正常显示)。

如果我知道,我就会意识到这一点,并且不会删除这些重要的包。那么我如何从 的输出中知道这些包是重要的,这些包不重要dpkg --get-selections

答案1

如果已安装的包具有优先级 重要的或者必需的那么这类包将被视为最重要的包。

apt-cache show <package-name> 

上述命令显示了相应包的优先级。

avinash@avinash-Lenovo-IdeaPad-Z500:~$ apt-cache show hostname
Package: hostname
Essential: yes
Priority: required

因此,运行以下命令来查找所有具有优先级的包重要的或者必需的

dpkg --get-selections | xargs apt-cache show {} | awk -F' *: *' '$1=="Package"{p=$2;next} $1=="Priority"&&$2~/(important|required)/ {print p}'

基本包在命令输出中有一个额外的记录“Essential: yes”。这些apt-cache show <package-name>基本包也具有重要或必需的优先级。要获取仅基本包的列表,请运行以下命令。

dpkg --get-selections | xargs apt-cache show {} | awk -F' *: *' '$1=="Package"{p=$2;next} $1=="Essential"&&$2=="yes" {print p}'

将上述命令输出保存到文本文件以供将来使用。

答案2

我不知道 Ubuntu 是否设置了此功能,但应该遵循 Debian 标准。有些软件包被标记为重要和必需,您需要该 aptitude:

sudo apt-get install aptitude

现在您可以看看需要哪些包:

aptitude search '~prequired'

或重要:

aptitude search '~pimportant'

您还可以做更多的事情,看看您安装的哪些包不重要也不是必需的:

aptitude search '?and(~i, !~pimportant, !~prequired)'

(以上搜索的意思是:搜索不重要也不是必需的已安装包)

请注意,没有 GUI 包是重要的或必需的。这两个部分都是拥有可启动系统(想象一下没有服务的服务器)和下载更多程序的最低要求,如果您删除其中任何一个包,则很可能会留下一个无法启动的系统,如果您删除除这些之外的所有内容,则肯定会没有任何 GUI。

参考:

相关内容