我在我的电脑上安装了许多附加软件包。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。
参考: