如何剥离Linux服务器发行版到核心?

我终于习惯于pipe理一个小型的Ubuntu服务器VPS。 但是,我知道我必须安装我不需要的程序。 即使这只是Ubuntu系统在Debian之上的开销。

例如,自从我发现Nginx以来,我不使用Apache。 自从我发现SSH以来,我不使用(S)FTP。 我可以用破折号replacebash或OpenSSH。

所以我想知道是否有一个我可以学习的指南或脚本,我可以运行在那里将删除系统的所有非核心部分,以便我可以了解什么是实际需要以及这些库如何工作。 虽然我必须承认,我没有准备好开始搞乱linux内核本身。

我的目标是适合一个完整的PHPnetworking服务器大约50MB,这样我可以给所有的RAM和RAM的剩余内存的FS和memcache。 我最感兴趣的是Debian,因为我已经知道了 – 但是我也听说过有关CentOS的好东西。

看来你的主要目标是充分利用内存来提高性能,而不是为了容纳臃肿或不需要的软件,对吧? 如果是这样,只要禁用Apache(例如)就足够了; 你没有得到任何好处卸载它。

因此,最好是检查ps fax输出。 你会看到每个软件包在运行以及产生了多less个subprocess。 很可能你没有运行FTP,所以你也不必担心。

此外,大多数不关键性能的服务都可以从inetd (或可能是xinetd )运行。 在这种情况下,他们没有任何内存,直到您访问正确的端口。

根据我的经验,Ubuntu服务器(没有LAMP)非常接近准系统。 我通常只需添加ssh,nginx以及任何我使用的服务器。

另一方面,如果你想减less磁盘使用,那么你会更好地服务于一个不同的发行版或(最好的select,恕我直言) Linux From Scratch

当我在一家VPS托pipe公司工作时,我们看到一些巧妙的networking服务器实现,devise用于64MB的内存空间(假设你在谈论内存,而不是磁盘空间) – 在LowEndBox上的Debian + nginx HowTo是一个很好的例子。

你问什么,你可以删除,以满足您的需要一个较小的服务器。 但是你的工作方式听起来像是你可能对发行版有一个误解。 Ubuntu是基于Debian的,但它不是Debian,使用Ubuntu的自定义软件包。 你不能像听起来像你想要的方式切出来的东西。

另外,即使有脚本或打包程序,你也可以说自从发现SSH以来,就不需要FTP了。 那么,如果你将服务器剥离到“核心”上,你可能不一定需要SSH,所以自动化的工具可能会剥夺它。

本质上,你需要介入和弄清楚你需要什么,不需要和删除你不使用的软件包。

我不知道你的VPS的条件是什么,但是当人们想要把服务器剥离到最小的空间时,我的第一反应就是告诉他们寻找最小占用空间的发行版。 Distrowatch可能会帮助你。 Ubuntu服务器是一个不针对小型的通用操作系统。 如果你正在寻找一个专门的服务器发行版,你可以find它们,但是你会失去一些function,你可能真的习惯了apt-get系统或者其他你所依赖的工具。

更不用说,如果你只是通过剥离零件,你可能会碰到一个你认为不需要的软件包,但实际上是因为一些三次删除的依赖。

最后的答案,我知道没有这样一个简单的自动剥离工具,而不是在安装时的最小configuration的服务器configuration,我对任何这样做是谨慎的,因为它可能不知道我想在服务器中,并可能删除我想要的东西。 相反,我会寻找一个专门针对我想要的服务器angular色的专业发行版,或者我将使用apt-get工具来查看安装的内容,并删除我不想要的内容(因为打包程序可能会最大程度地减less我的who-声)。

我通常在安装Debian或Ubuntu时执行以下操作:

  • 不要在tasksel中select任何东西(安装过程的一部分)
  • 回声'APT::Install-Recommends "0";' > /etc/apt.conf.d/99local 'APT::Install-Recommends "0";' > /etc/apt.conf.d/99local
  • 能力倾向
    • 请在“安装的软件包”类别上按M键。 这将标记所有安装包以满足依赖性
    • 按“安装的软件包”类别中的_。 这将标记所有的包清除。 能力会抱怨说,不应该被删除,只是回答提示,他们不会
    • 按g应用您的select,现在apitude现在修复具有错误的依赖关系的软件包
    • select你想要保留的软件包,按下+键(通过按?学习其他aptitude命令)
    • 经过一番努力,aptitude会清除你不需要的软件包。

在Ubuntu的土地上,你可以使用现有的系统来build立JeOS镜像 。 他们是比较正常的Ubuntu系统,但几乎所有的东西都被剥离了。 甚至没有安装手册页。 上次我构build了一个Ubuntu 10.04 LTS x86_64 JeOS系统,它是124MiB压缩的,还有一些额外的软件包(ruby,puppet和deps,别的)。

谈到你的目标,如果你没有把整个系统放在一个无盘硬盘的虚拟硬盘上,你可能会误解一些东西。

如果你想要一个精简的Linux服务器,你可以安装ArchLinux。 从Scratch和Debian之间的Slackware / Linux之间。 一探究竟。

请记住,Ubuntu JeOS映像(如Luke404指出的那样)将被精简为准备安装在虚拟机中的版本。 他们只是为这个环境提供最低限度的硬件支持,并且针对虚拟环境对内核进行了一些优化修补。