如何从 Red Hat Enterprise Linux 安装中删除 GUI 位?

如何从 Red Hat Enterprise Linux 安装中删除 GUI 位?

我正在查看一组 RedHat Enterprise Linux (RHEL) 5.3 服务器,它们都安装了 GNOME 和 Xorg,但都不需要它们。它们是由第三方通过 VM 模板部署的,我不知道它们的所有历史记录。我所知道的是,它们都没有运行需要安装完整 GUI 的应用程序。但是,有些服务器可能运行需要一些 X 库的应用程序(我想到了 ImageMagick)。

根据yum grouplist,‘X Window System’组未安装,所以我无法yum groupremove在这里使用。

是否有一个或几个依赖链足够低的软件包可以删除,从而拉出 Gtk、GNOME 和 Xorg?或者,如果它在启动前生成要删除的软件包列表,我们可以重新安装所需的应用程序,完成后,这将拉回 X 库。

答案1

我还没有使用真正的 RHEL 做过这个,但是我已经从 CentOS 5.1 和 5.2 中撬出了 X。(多年来,我一直在从 Redhat 衍生的发行版中取出 X……自从建立了依赖关系之后,基本上,安装 X,无论您是否愿意。

我不记得确切的依赖关系,但我记得,有些令人讨厌的依赖关系需要 RPM 的“--nodeps”参数才能删除有问题的 RPM。我只是开始删除不需要的软件包,在“rpm -e”命令行中添加越来越多的软件包,最后在必要时添加“--nodeps”。

我不知道我是否建议对生产机器这样做。我不会在生产环境中部署任何数量的 CentOS,因此我可能会搞砸我的安装,这很正常。在生产环境中,磁盘空间很便宜。从安全角度来看,我不喜欢安装不必要的软件,但正确的做法(tm)可能是重建具有有问题的依赖关系的软件包(显然没有有问题的依赖关系),而不是直接删除并可能使系统无法使用。

答案2

您也可以考虑在启动时不启动 X 服务器/GDM,并将软件包保留在那里。我猜它们会占用一些空间并增加更新时间,但除此之外,我认为它们不会引起任何问题。

对于您的情况,您可能确实希望将它们删除,或者您可能已经考虑过这一点,但我只是想把它放在那里:-)

答案3

我目前基本上在做同样的事情。由于缺乏相关工具,我的方法主要是手动的,但它可能会有所帮助。

首先,部署一个新服务器,其中包含您所需的正确软件包列表,即没有 X 和 Gnome。然后,在旧服务器和新服务器上比较软件包列表。尝试从旧服务器中删除整个 diff 是不明智的 - 您永远不知道会破坏什么 - 但这可能是一个开始。从 diff 中取出一些大软件包当然不会破坏任何东西(如 nautilus)并从那里开始。rpm -e --test在编译的列表中尝试,冲洗,重复。然后,最终列表可以相当轻松地在其他服务器上使用,因为这些服务器都是相似的。

我完全同意这不是一个好的、干净的、标准化的方法,但我更看重从我的服务器中删除 Gnome 和 X 垃圾,而不是采用一些简化的流程来实现这一点。顺便说一句,请注意,我没有安装这些服务器,我只是在清理它们。;-)

我们只在修补停机期间删除软件包,因此我们可以在删除它们后直接测试应用程序(主要是 Oracle)。如果出现故障,我们会列出yum install列表并使用较小的子集重试。虽然这种情况从未发生过,但您应该做好最坏的准备。就像 Evan 所说的那样:这是一项冒险的业务。

我的主要目标是从服务器上删除较大的 X 应用程序(如 nautilus、firefox、openoffice 等),主要是为了减少安全足迹。目前,一些较小的应用程序可能会继续安装,这一点对我来说没问题,因为我们可以这么说,“捕获更大的鱼”。

答案4

我让它与 Kickstart 一起工作。如果您创建 kickstart 配置文件,则可以从包定义中排除基础包,并获得真正最小化的安装。我认为它太过简化,甚至没有 yum 和其他一些包,我不得不重新添加这些包。

相关内容