避免从metapackage安装一些包
我想安装xubuntu-desktop
(一个非常大的元数据包),但xubuntu-desktop
了一些软件包(大约10个)。 我这样做的当前方式分为两步:1)安装元数据包,2)清除不需要的包。 我想知道是否有更有效和干净的方法来做到这一点。
我认为apt-get
会接受像安装这样的指令, 除了这些,但非常令人惊讶的是它似乎没有。
一个潜在的解决方案是运行命令sudo apt-get install xubuntu-desktop
,然后选择No ,并复制终端中列出的所有软件包,手动删除不需要的软件包。 然而,这可能比前面提到的两步程序更耗时,也有可能最终导致错误的依赖。
有关如何在一个简单的命令行指令中进行此操作的任何想法?
您可以编写任务脚本。 我很确定我在其他地方发布了这个,但现在找不到了。 首先,使用您不想要的包创建一个文件。 例如:
$ cat dont-want.txt memtest86+ wireless-tools firefox evince
然后解析apt-cache depends
的输出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来强制禁止: 如何禁止安装特定的软件包?