我要从哪里开始创建自己的Ubuntu衍生版?

我想创建自己的Ubuntu衍生版本,包括我选择的桌面环境和我喜欢的预安装程序集。
我应该从哪个基础开始,并且应该添加哪些修改呢?
我知道两个可能的起点:
  • Ubuntu Core,官方提供的一套基本组件(哪些组件?),似乎适合用于创建设备固件或者自己的Linux发行版。与之前的{{link3:JeOS不同},这不是一个完整的发行版,因为它缺少一个带有安装程序或引导加载程序的可启动镜像。

  • Ubuntu Mini Remix,一个完全工作的Ubuntu livecd,只包含使系统正常运行所需的最小软件集合;这不是一个官方的Ubuntu项目。

  • 也许我可以使用Ubuntu Server或其他东西作为基础。

然后,我需要定制我的发行版。我知道以下工具:

这些工具应该能够让我轻松定制我的安装媒体。但是,如果我不仅仅需要创建一个个人喜好的Ubuntu变种,而是需要一个可维护的项目,包括所有相关内容:我想我需要一套可以被版本控制系统跟踪的脚本,可以进行自动化测试和构建,并且需要一些构建基础设施。这就是他们构建一个相当不错的操作系统发行版的方式,对吗?

我应该如何最好地开始创建自己的Ubuntu衍生版,以一种自然的方式超越个人定制CD,并以更受控、更健壮的方式构建,就像正规的Ubuntu衍生版所做的那样?


想要自定义安装程序或者像Ubuntu KDE/Gnome那样创建一些新的东西吗? - Stefano Mtangoo
你需要自己构建软件包吗?还是只需使用现有的软件包? - bain
我想创建一个类似于Ubuntu KDE/Gnome的东西,但使用另一个桌面环境,并且使用常规的Ubuntu软件包。它基本上是预装了另一个桌面环境的Ubuntu;因为对于许多用户来说,配置桌面环境比它所值得的麻烦多。 - Nickolai Leschov
1个回答

一个Ubuntu的改版只是一个元包(比如xubuntu-desktop),它依赖于默认安装的软件。要获取一些现有元*buntu桌面的源代码,请执行以下操作:
apt-get source xubuntu-desktop
apt-get source lubuntu-desktop

这将获取 x/lubuntu 的基本软件包。它只是一个常规的Debian 软件包,它有 debian/control debian/rules 等文件。可以通过执行以下操作重新构建它:

apt-get build-dep xubuntu-desktop
dpkg-buildpackage -b -uc

每个架构都有自己的文件列表需要安装(例如:"desktop-amd64","desktop-powerpc"等)。要创建自己的衍生版本,请按照以下步骤进行操作:
  • 以lubuntu/xubuntu源代码为基础
  • 进行适应性调整(例如,将lubuntu替换为nicbuntu)
  • 编辑依赖列表以添加所需的软件包
  • 构建您的元软件包
  • 安装它(使用dpkg -i nicbuntu.debgdebi nicbuntu.deb如果您想引入依赖项)
一旦您的元软件包正常工作,您可以构建一个安装程序ISO镜像。已经有很多答案详细解释了如何做到这一点(this one是非常详细的)。
您需要记住的额外事项只有以下几点:
  • 将您的nicbuntu.deb和其所依赖的任何软件包添加到ISO镜像中
  • 重新生成Packages文件(使用apt-ftparchive,请参考链接的答案)
  • 将"nicbuntu"添加到预置文件中(同样,请参考链接的答案)
显然,你需要解决很多具体细节,但基本上就是这样。

apt-get source lubuntu-desktop已经将源代码目录lubuntu-meta-0.52安装到了我在Ubuntu 13.10中的主目录下。所以,Lubuntu实际上是建立在什么之上的呢? - Nickolai Leschov
1所有的依赖项都列在那个源代码中。你也可以执行 apt-cache depends lubuntu-desktop 来列出所有的依赖项。你还可以在 packages.ubuntu.com 上查看这些依赖项。都是一样的。 - bain