您是否删除了不需要的软件包(*NIX)或者禁用了它们?

您是否删除了不需要的软件包(*NIX)或者禁用了它们?

我目前正在构建一个 cobbler 和 puppet 设置。我做的一件事是使用 puppet 禁用不需要的服务,但后来我想:我应该用 cobbler 删除它们,而不是在安装后禁用它们吗?

例如,如果客户端是虚拟机,则 puppet 中的基类会通知客户端禁用 smartd、cpuspeed、microcode_ctl 和 readahead_early。

那为什么不删除呢?如果以后我需要这些软件包,我可以直接安装。当然,如果机器转换为物理硬件,我必须记得再次安装这些软件包。

思考对我的问题的最佳解决方案是创建一个傀儡类,如果服务 A 是虚拟的,则禁用它,如果不是,则启用它。,也许其他人还有其他见解?

答案1

我认为,一般来说,禁用某些东西是更好的解决方案。你开始删除一些东西,它们可能是其他软件包的依赖项,或者其他东西可能期望它在那里,等等。禁用它们后,它们只会占用少量空间,并可能增加一点更新时间。我认为这个想法是,如果可以的话,你想让你的系统接近发行版维护者将要测试的系统。

另外,您说“我必须记住安装...”。我想您可能需要改变您的思维方式,也许未来的系统管理员将管理这些,花费数小时尝试解决一些奇怪的问题,结果却发现是因为一些通常存在的软件包不存在。

不过,你的东西非常具体,所以如果它记录了删除,我想那就没问题了。如果你正在部署数百个这样的虚拟机,那么也许这是一个合理的调整级别。不过最后,我最喜欢你的傀儡想法。

答案2

我完全不同意凯尔的观点。

如果没有必要,就应该删除。最好不要安装不必要的软件。

承担这项任务的人(例如您自己)应该对自己所做决定的含义充满信心。删除标准系统实用程序和库通常是不被接受的,但这在一定程度上取决于您的环境和服务器角色。

如果存在包依赖关系,它们将在现代系统中被识别。

如果稍后您正在编译的代码需要您删除的库,那么您可以安装它——因为它是必需的。

我不会仅仅因为未来的某些系统管理员可能是个白痴而将 GTK 安装在服务器上。

相关内容