避免从元包安装某些包

避免从元包安装某些包

我想安装xubuntu-desktop(一个非常大的元包),但要省去其中的一些包(大约 10 个)。我目前的做法是分两步:1)安装元包,2)清除不需要的包。我想知道是否有更高效、更干净的方法来做到这一点。

我以为apt-get会接受这样的指令除了这些之外安装这个但令人惊奇的是,事实似乎并非如此。

一个潜在的解决方案是运行命令sudo apt-get install xubuntu-desktop,然后选择,并复制终端中列出的所有软件包,手动删除不需要的软件包。然而,这可能比前面提到的两步过程更耗时,而且还有可能导致依赖关系不完善。

关于如何在一个简单的命令行指令中完成此操作,有什么想法吗?

答案1

您可以编写该任务的脚本。我很确定我已将此内容发布到其他地方,但现在找不到了。首先,创建一个包含您不需要的软件包的文件。例如:

$ cat dont-want.txt
memtest86+
wireless-tools
firefox
evince

然后解析输出apt-cache depends

apt-cache depends xubuntu-desktop | awk '$1 == "Depends:" {print $2}' | grep -vFf dont-want.txt

这应该包括元包直接依赖的包,不包括您排除的包。然后您可以使用来xargs安装:

apt-cache depends xubuntu-desktop | 
  awk '$1 == "Depends:" {print $2}' | 
  grep -vFf dont-want.txt |
  sudo xargs apt-get install

如果不需要的包不是直接依赖项,则需要使用apt-rdepends代替apt-cache depends

您还可以使用 Apt Pinning 来强制执行禁令:如何禁止安装特定的包?

相关内容