我正在查看RedHat Enterprise Linux(RHEL)5.3服务器,它们都安装了GNOME和Xorg,这些服务器都不需要它们。 他们是由VM模板中的第三方部署的,我不知道他们所有的历史。 我所知道的是,他们中的任何一个都不需要运行实际需要安装完整GUI的应用程序。 不过,有些人可能会运行一个需要一些X库的应用程序(想起ImageMagick)。
根据yum grouplist ,“X Window System”组没有安装,所以我不能在这里使用yum groupremove 。
是否有一个足够低的依赖链包,或者我可以删除的包,这将拉出Gtk,GNOME和Xorg? 或者,如果它在开始之前生成要删除的软件包列表,我们可以重新安装我们需要的应用程序,当我们完成后,将会撤回X库。
我还没有用真正的RHEL来做这个,但是我已经把CentOS 5.1和5.2中的X引出来了。 (我从Redhat派生的发行版中拉了X年多年……自从依赖关系被创build以至于基本上,不pipe你是否愿意, 都必须安装X.)
我不记得确切的依赖关系,但是,据我所知,有一些annyoing依赖关系需要RPM的“–nodeps”参数,以得到有问题的RPM删除。 我只是开始剥离我不需要的软件包,在“rpm -e”命令行中添加越来越多的软件包,并在必要时添加“–nodeps”。
我不知道我会build议这样做的生产机器。 我不在生产环境中部署任何数量的CentOS,所以我可能会搞砸我的安装。 在生产环境中,磁盘空间便宜。 我不喜欢从安全angular度安装不必要的软件,但正确的做法可能是重build包含违规依赖的包(显然没有违规的依赖),而不是仅仅是撕掉系统,并可能使系统不可用。
您也可以考虑在启动时不启动X服务器/ GDM并将软件包保留在那里。 我想他们会占用一些空间,并增加更新时间,但除此之外,我不认为他们会造成任何问题。
对于你的情况,你可能真的希望他们删除,或者你可能已经考虑到这一点,但我只是虽然我会把它放在那里:-)
我目前正在做同样的事情。 我的方法主要是手动的,由于缺乏这方面的工具,但它可能是有帮助的。
首先,用你需要的正确的软件包列表来部署一个新的服务器,即没有X和Gnome。 然后,在旧的和新的服务器上区分软件包列表。 尝试从旧服务器上删除整个差异是不明智的 – 你永远不知道会发生什么事情,但这可能是一个开始。 从差异中拿出一些大包,你肯定不会破坏东西(如鹦鹉螺),并从那里开始。 在编译的列表上尝试rpm -e --test ,漂洗,重复。 最后的列表可以毫不费力地在其他服务器上使用,因为这些服务器都是相似的。
我衷心地认为,这不是一个很好的,干净的,标准化的做法,但是我很重视从我的服务器上移除Gnome和X crud,而不是让一些简化的stream程到达那里。 顺便说一句,我没有安装这些服务器,我只是在清理它们。 😉
我们只在修补停机期间删除这些软件包,所以我们可以在删除它们之后直接testing应用程序(主要是Oracle)。 在破损的情况下,我们yum install列表,并再次尝试一个较小的子集。 并不是这样,但是你应该做好最坏的准备。 像埃文说:这是危险的生意。
我的主要目标是从服务器(比如,鹦鹉螺,firefox,openoffice等)中删除更大的X应用程序,主要是为了减less安全足迹。 事实上,一些小的应用程序可能会保持安装对我来说是好的 – 现在 – 因为我们正在 “捕捉更大的鱼”,可以这么说。
我使用了Kickstart。 如果你创build一个kickstartconfiguration文件,你可以从包定义中排除base,并获得一个非常小的安装。 我认为它是如此之小,甚至没有百胜和其他几个,我不得不把这些软件包加回去。