我可以通过编程方式创建 (UBUNTU) 发行版吗?

我可以通过编程方式创建 (UBUNTU) 发行版吗?

苏塞工作室让我可以通过选择自己安装的应用程序来构建自己的发行版。我运行一个向导,它生成一个 .ISO 文件。

例如,如果我想要一个用于 Web 开发的发行版,我可能会选择 MySql 或 MariaDB、Eclipse PHP 和 Eclipse JS、Xdebug、FireFox 开发人员版本(以及其他一些版本)。

  • 有什么东西可以为 Ubuntu 提供这样的服务吗?
  • 有没有我可以自己使用的 API?

如果没有,任何人都可以解释我将如何创建这样的应用程序或向导吗?我是一名专业编码员,所以如果可能的话应该能够做到。

也许我可以以某种方式自动化 Gentoo?尽管模拟 Ubuntu 需要付出很大的努力(我也对其他发行版感兴趣,但 Ubuntu 将是一个好的开始)。

我的第一个想法是我只需要一个文件系统和一个引导记录,然后我可以从中创建一个 ISO。但后来我意识到我想在其中实际安装一些应用程序,这意味着配置文件、符号链接等最好通过实际运行安装来创建(或者,是吗?)。

是否有“构建您自己的 (Ubuntu) Linux”向导?如果没有,我怎样才能制作一个?

答案1

作为一般规则,几乎任何不是专门为特定任务构建的发行版(专门构建的发行版的示例包括 MythDora、BackTrack、SteamOS、LEAF 和 SystemRescueCD)都有一些方法可以做到这一点,尽管它们在各方面都有所不同。究竟如何。一般来说,根据 Linux 发行版的不同,可以通过三种方法来执行此操作:

  1. 在发布工程期间(您实际上是直接构建自己的安装映像)。这在基于源代码的发行版中最常见,Gentoo 可能是最好的例子(Gentoo 的安装映像是压缩的 tarball,您可以将其直接提取到目标系统上,它们的发布工程工具(Catalyst)可让您构建包含确切包的自定义 tarball设置你想要的)。

  2. 在安装过程中,您可以选择一组单独的软件包进行安装。 Arch、NixOS 和 Alpine 都采用这种方法(尽管它们以不同的方式实现,Arch 只是让您将所需的软件包添加到初始安装命令中,NixOS 让您添加配置项以在第一次系统构建期间将它们引入, Alpine 让您在安装过程中手动添加您想要的每一个,就像您在现有系统上安装它们一样)。

  3. 通过自定义用于安装的 Live CD。这就是 SUSE Studio 所做的事情,也是大多数发行版所采用的方法(因为大多数发行版只是将 Live CD 中的软件包列表镜像为初始安装),包括 Ubuntu 和 Fedora。

Ubuntu(以及其他可以使用 Debian 安装程序的发行版)可以使用方法 2 或方法 3。

对于第二种方法,yuu 必须执行基于文本的“专家”模式安装,并且在安装过程中您可以选择一个选项来启动 Aptitude(一个用于 APT 和 dpkg 的基于 ncurses 的漂亮文本 UI)手动指定要安装的软件包。

对于第三种方法,不幸的是您必须自己完成这项工作,但这并不太难(只是有点乏味)。我找到的最好的建议是在https://help.ubuntu.com/community/InstallCDCustomization

至于创建一个工具来快速轻松地完成此操作,您可以看看Ubuntu 定制套件,不幸的是,这个项目现已不复存在,它的功能似乎与 KIWI(为 SUSE Studio 提供支持的 SUSE 服务)几乎相同。虽然它可能不适用于最新版本的 Ubuntu,但如果您想自己创建这样的工具,理论上它应该提供一个良好的起点。

相关内容