SUSE Studio允许我通过选择我自己安装的应用程序来构建我自己的发行版。我运行一个向导,它会生成一个 .ISO 文件。
例如,如果我想要一个用于 Web 开发的发行版,我可能会选择 MySql 或 MariaDB、Eclipse PHP 和 Eclipse JS、Xdebug、FireFox 开发者版(以及其他一些)。
- 有什么可以为 Ubuntu 提供这样的服务吗?
- 有没有我可以自己使用的 API?
如果没有,谁能解释我将如何创建这样的应用程序或向导?我是一名专业的编码员,所以应该能够做到,如果可能的话。
也许我可以以某种方式自动化Gentoo?虽然这将花费大量精力来模拟 Ubuntu(我也对其他发行版感兴趣,但 Ubuntu 将是一个好的开始)。
我的第一个想法是我只需要一个文件系统和一个引导记录,然后我就可以从中创建一个 ISO。但后来我意识到我想在其中实际安装一些应用程序,这意味着配置文件、符号链接等最好通过实际运行安装来创建(或者,它们是吗?)。
是否有“构建您自己的(Ubuntu)Linux”向导?如果没有,(如何)我可以制作一个吗?
作为一般规则,几乎所有不是为特定任务而专门构建的发行版(专门构建的发行版的示例包括 MythDora、BackTrack、SteamOS、LEAF 和 SystemRescueCD)都有一些方法可以做到这一点,尽管它们都各不相同究竟如何。一般来说,根据 Linux 发行版的不同,有三种方法可以做到这一点:
在发布工程期间(您实际上是直接构建自己的安装映像)。这在基于源的发行版中最常见,Gentoo 可能是最好的例子(Gentoo 的安装映像是压缩的 tarball,您可以直接将其提取到目标系统中,他们的发布工程工具(Catalyst)允许您构建包含确切包的自定义 tarball设置你想要的)。
在安装过程中,您可以选择一组单独的软件包进行安装。Arch、NixOS 和 Alpine 都采用这种方法(尽管它们采用不同的方式,Arch 只是让您将所需的包添加到初始安装命令中,NixOS 让您添加配置项以在第一次系统构建期间将它们拉入,并且 Alpine 让您在安装过程中手动添加所需的每一个,就像您在现有系统上安装它们一样)。
通过自定义用于进行安装的 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 Customization Kit,这是一个不幸的现已不复存在的项目,它的功能似乎与 KIWI(支持 SUSE Studio 的 SUSE 服务)几乎相同。虽然它可能不适用于最新版本的 Ubuntu,但如果您想自己创建这样的工具,它理论上应该提供一个很好的起点。