如何精简Ubuntu操作系统?

我正在尝试修复我认为是Ubuntu臃肿安装的问题。当我在一台机器上安装Ubuntu时,会得到一些我不想要的东西 - 网络浏览器、办公应用程序、媒体播放器、辅助工具、Ubuntu One等等。我的目标是创建一种方式,可以只包含最基本的软件包的Ubuntu安装 - 管理工具和软件包管理器、图形用户界面(我更喜欢GNOME)、文本编辑器、核心驱动程序(显卡、网络卡 - 有线和无线、输入设备)以及运行稳定发行版所必需的其他任何内容。然后,我想挑选和选择我要安装的软件包,创建自己定制的系统。
在尝试过Arch和Slackware等其他发行版后,我喜欢它们默认提供的精简安装。然而,我陷入了“配置地狱” - 目前,我尝试从Ubuntu转向Arch,但花了6个小时后,我仍然没有一个可用的系统。它只完成了一半的配置,我没有任何可用的软件包来帮助我工作。
是否有任何可以帮助我的东西?无论是像OpenSUSE构建器那样让您选择CD上的应用程序和软件包,还是高级安装模式,可以选择要安装和忽略的软件包,或者有关如何将Ubuntu精简到最基本的指南?
我猜接下来的问题是,一旦我有了一个精简版的Ubuntu,这会对更新有影响吗?当Canonical发布下一个版本的Ubuntu时,我不希望重新安装任何多余的软件。而且,是的,大部分随Ubuntu附带的应用程序,我根本就不使用。从来没有用过。

4我认为你应该扩展你的问题,比如说“我想要基本系统,带有Gnome,但不包括所有的办公套件、游戏等等。” - Stefan Lasiewski
5膨胀被定义为“终端用户不使用的不必要功能”。Ubuntu桌面团队有最全面的选择过程,按照他们的使命声明设定。如果你发现其中任何内容都没有用处,并不意味着它是膨胀的。https://wiki.ubuntu.com/DesktopTeam/Mission - invert
17对于我来说,如果我不使用某个功能或者觉得它没有用处,那就是臃肿。 - Thomas Owens
10个回答

Ubuntu Server开始构建。它使用与桌面发行版相同的软件仓库,您可以安装各种桌面配置。
我只是建议您远离像ubuntu-desktop这样的大型元包,否则您最终会得到一个完整的发行版。
如果您只想精简而不是构建,您将需要删除依赖于许多东西的ubuntu-desktop,并将所有自动安装的依赖项转换为手动安装。如果您不这样做,aptitude将清除它们,因为它(以及其他工具)会自动清理“过时”的软件包 - 这些软件包不满足任何依赖关系或用户选择。

我对其他建议做这件事的担忧是一样的 - 我会像现在使用Arch时那样陷入配置地狱吗?我有一个部分配置好的系统,运行着Gnome,但它没有无线网络支持,也没有帮助我工作的应用程序,我需要花费几个小时来安装和配置,才能让系统可用。 - Thomas Owens
1不,你选择包裹时,它们会带有与主系统相同的默认设置。 - Oli
@Thomas,为什么要重新做这项工作呢?如果整个系统“完美运行”,那为什么不直接使用它呢? - Thorbjørn Ravn Andersen
2因为我想要尽可能地最大化可用的磁盘空间,每个兆字节都要充分利用,并且尽量减少内存消耗。 - Thomas Owens
1虽然我还没有做过这个(没时间),但它似乎是从零开始构建一个基于Ubuntu的定制发行版并实现最小安装的最佳选择。 - Thomas Owens
1你也可以使用最小安装,只是提醒一下。 - Thomas Ward
1@LordofTime 我个人对 -minimal 不是很感兴趣。它太简洁了,你必须下载所有的软件包,而且在我看来,这比只下载 -server ISO 并选择合理的附加软件包要慢。-server 是一个非常明智的起点。 - Oli

使用Ubuntu Server媒体,并选择构建最小安装选项。人们称之为"JeOS",尽管我认为这个术语可能已经过时了。《Ubuntu Server指南》上说: 在从Server Edition ISO安装时(在第一个屏幕上按F4键可以选择"Minimal installation",这是与JeOS相当的软件包选择)。

我对其他建议做这件事的担忧是一样的-我会陷入像我现在使用Arch时那样的配置地狱吗?我有一个已经安装了Gnome但没有无线网络支持、没有帮助我工作的应用程序的半配置系统,我需要花费几个小时进行安装和配置,才能让系统可用。 - Thomas Owens
4@Thomas:但是你所说的“精简”不就是这个意思吗?只有以太网网络,没有应用程序(除了基本功能),没有图形用户界面等等。 - Stefan Lasiewski
我想避免我不想要的应用程序。说实话,我并不知道所有我不想要的东西,因为很难弄清楚安装了哪些软件包、它们的功能以及依赖它们的内容。Synaptic 差不多,但还不够完美。我想要一个带有 X、GNOME、无线和有线网络以及其他几个基本功能的安装。我不想处理 VPN 客户端、游戏、用户体验、可用性(屏幕键盘等)、网页浏览器、办公应用程序、照片管理和媒体播放等。 - Thomas Owens
大约两年前,我创建了一个基本的JeOS系统,并尝试找到足够的组件来运行Xfce(Xfce比Gnome更精简,依赖性更少)。apt-cache depends xfceapt-cache rdepends xfce非常有帮助。我也尝试过使用Gnome,对于'desktop-base'和'gnome'软件包,我取得了一定的成功。我记得它安装了比我想要的更多东西,但比默认安装要好。然而,我对此的记忆很模糊... - Stefan Lasiewski
就大部分而言,apt在避免配置困境方面做得非常出色。Yum在基于RH的发行版上表现也很好。 - Stefan Lasiewski

Ubuntu有一个迷你.iso,是Ubuntu的一个完全精简版本,你可以用它来自己构建系统。大约只有28MB左右。
截至本回复时,最新版本是12.04 Precise,所以你只需在URL中替换发行版名称,即可获取该版本的迷你.iso。
64位系统:http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-i386/current/images/netboot/mini.iso 32位系统:http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-i386/current/images/netboot/ 然后,你可以使用apt-get等命令安装你选择的图形界面/桌面环境,以及任何你想要安装的软件包。

对我来说,这太完美了。我不想要图形界面,而是想要网络引导。 - hookenz


JeOS是Ubuntu Server的一部分吗?我搜索了"Ubuntu JeOS",最后进入了Server页面。我正在考虑选择这个路线... - Thomas Owens
另外,我对这个也有一个担忧,就是我会陷入“配置地狱”,就像我现在使用的Arch一样。所有东西都只完成了一半,而我只想使用我的系统,但由于还有几个小时的安装和配置工作,我无法做到。 - Thomas Owens
不要太担心那个……配置应该不会比普通安装复杂很多,但如果遇到问题,你显然知道在哪里寻求帮助的地方 ;) - LassePoulsen
配置应该不是个问题,因为在存储库中的软件包中实际上包含了你在标准的Ubuntu安装中找到的所有经过"尝试和测试"的设置。我刚刚自己查了一下JeOS,确实它似乎现在是服务器安装的一部分(这与Hardy不同),我唯一的假设是在设置过程中会有一个菜单给你选择要安装什么。这通常在备用CD安装程序中都是如此。 - ibuclaw

  1. 按照许多人的建议进行“最小化”安装
  2. 使用以下命令安装所需的软件包:
    sudo apt-get install --no-install-recommends package-name,其中package-name是您要安装的软件包

配置要求取决于您选择安装的软件包,保持最小安装取决于了解“最小化”工具或依靠手动配置。 为了方便大多数用户的配置工具通常有很多依赖项,这也使Ubuntu变得更加出色。


安装Ubuntu服务器并进行ssh登录。这是最简化的配置。

那太过于精简了。我将编辑原帖以反映这一点,但我只想要管理工具和GUI,没有应用程序。 - Thomas Owens
2然后只需找出提供所需功能的软件包,并使用apt-get在最小化的Ubuntu服务器上安装它们。不难。 - Thorbjørn Ravn Andersen

这是我用来从普通桌面安装中删除不需要的默认软件包的步骤:
1. 移除 ubuntu-desktop 软件包。实际上它并不会删除任何程序,只是一个依赖于默认软件包的元包。如果你不移除它,就会出现依赖错误。
2. 在软件包管理器中查看它的依赖关系(我喜欢使用 aptitude)。卸载你不想要的软件包。
对于默认的 GNOME 应用程序来说,这样应该足够了,不过取舍程度如何,还需视情况而定。对我来说,升级一直都很顺利。如果新版本中包含新的默认软件包,如果你想要它们的话,可能需要手动安装,否则似乎也可以正常工作。

只是为了澄清你最后的观点 - 如果我没有安装软件包并且更新我的Ubuntu系统,那么我已经卸载的软件包将不会被重新安装?这是我其中一个担忧的问题。 - Thomas Owens
没错。 - Morgan May

我不确定你说的“bloatware”具体是什么意思,但听起来你可能对Xubuntu感兴趣 - 它也是一个基于GTK的发行版,但设计得非常轻量级。你可以像在常规的Ubuntu发行版上一样,在其之上安装任何应用程序或组件。

1垃圾软件是指Ubuntu自带的所有我从未使用过的应用程序。所有的游戏、一堆实用工具、屏幕键盘、屏保等等。还有很多我从未使用过的随机工具 - 我甚至不知道它们都是什么,只是在我的已安装软件包中看到它们。 - Thomas Owens
嗯,很多这些应用可以通过Ubuntu软件中心或适当的apt-get remove命令进行单独卸载。然而,大多数应用程序和实用工具对资源的影响并不大,除了它们占用的磁盘空间。除非你真正使用它们,否则它们不会使用内存、电源或CPU负载。 - Bryce
3真的,要优化我的系统,我不关心安装了什么,而是关注正在运行的内容。通常情况下,这指的是服务而不是应用程序。例如,我可能正在尝试最大化笔记本电脑的电池性能。为了做到这一点,我使用非常棒的“power-top”来查看哪些应用程序或服务消耗最多的电力,并将它们关闭。例如,我会禁用ubuntu-one、pulseaudio、蓝牙,有时甚至是网络管理器。通过这种方式,我成功地暂时将一台上网本的电池寿命提高了一倍。要查看正在运行的内容:service --status-all - Bryce
1可能是这样,但我仍然不希望它们存在。还有一些毫无意义的东西,比如随机品牌(比如ubuntufox或者其他类似的),也是如此。我希望能够拥有一个基于Ubuntu的发行版,非常精简。 - Thomas Owens
对于你提到的应用程序,其中我只想安装蓝牙和网络管理器。然而,要确定已安装了哪些软件包,它们有什么依赖关系,以及它们具体是做什么,并删除你想要的那些软件包并不容易。Synaptic接近这一目标,但它仍需要比我所掌握的更多关于软件包功能的知识。 - Thomas Owens
3“非常轻巧”并不完全准确。它只是一个非Gnome版本而已。 - Thorbjørn Ravn Andersen

你可以使用
apt-get remove "package"

直到你不想要的所有软件包都被删除,然后使用Remastersys创建一个可启动光盘。

安装Synaptic软件包管理器(sudo apt-get install synaptic),然后浏览“已安装”列表并删除您不需要的内容,描述在侧边栏上,这样您就可以真正简化设置,而无需从头开始构建...
始终要小心删除什么,尽管我总是首先删除'mono-runtime'及其依赖项以及'thunderbird',因为我的电子邮件主要是基于Web的...