除了nginx,它的依赖关系和对运行系统至关重要的软件包之外,其他所有的东西都可以被移除

我有一个安装了默认软件包列表的Ubuntu服务器。 我想卸载一切不是nginx,它的依赖关系,和任何其他软件包启动到一个tty和运行nginx所需的。

有没有办法做到这一点,而不需要手动辨别要删除哪些软件包?

另外:我这样做的原因是,系统安装nginx等情况下尽可能less的工具。

编辑:我也需要sshd和sudo …也许一个好的答案会指出我可能需要的其他东西。

这个系统不会让你在没有战斗的情况下删除sudo ,就像它不会让你删除你的内核或apt工具一样。 一个问题是,你的问题混合了两个问题:(1)nginx作为apt依赖关系所需的软件包集合是什么?(2)什么是健康工作系统的最小包集合?

举个例子,nginx可能不依赖于sshd的libapt意义,但是你不想从远程服务器上删除ssh。 我其实认为@提格兰的答案是最安全最快的。 你可以在几分钟内安装一个最小系统,这个问题已经在这里半个小时了。

除此之外,我会build议aptitude有非常强大的search和匹配选项。 你可能可以像这样制作一个命令行:

 aptitude purge $(aptitude search <not-depended-on-by-nginx> and <not-essential>) 

但再次,获得这样一个命令正确的可能需要更长的时间比安装一个最小的系统,并设置它运行。