我对 Ubuntu 进行了核心定制,以创建我自己的发行版。但我不知道如何为其创建可安装的 iso。有人知道怎么做吗?
答案1
两步:
- 打包您的更改
- 将您的包包含在您的 iso 中
设计包装
我希望您的包裹包含五样东西:
- 新的配置文件
- 对现有配置文件的脚本化自定义
- 脚本化命令
- 所需的依赖项
- 方便的依赖关系
新的配置文件可以作为软件包的一部分轻松安装。只需将它们添加到您的包中即可。如果您更改了文件,例如/etc/sudoers
或/etc/apt/sources.list
,请尝试将更改放入/etc/sudoers.d/
或/etc/apt/sources.list.d/
。不要部署您自己的版本,/etc/sudoers
期望它会覆盖 sudo 部署的版本。您的软件包将发生冲突并无法安装。
如果您确实需要更改现有配置文件,请将其添加到脚本中postinst
。尝试撤消prerm
脚本中的更改。这里有些例子:
echo "192.168.1.1 router" >> /etc/hosts
sed 's/PasswordAuthentication yes/PasswordAuthentication no/' -i /etc/ssh/sshd_config
如果您需要运行任何命令(例如useradd
或realm
),那么您也应该在postinst
.
您还可以向此包添加依赖项。如果您对 进行了更改/etc/ssh/sshd_config
,那么您可能需要依赖openssh-server
它来确保在脚本对其进行操作之前已安装该文件。您可以找到哪些包拥有每个文件dpkg -S /path/to/file
。
您还可以在自定义配置中添加对您想要的包的依赖项。如果您喜欢 chromium,并且知道每次使用此映像时都需要安装它,那么请继续添加对 chromium 的依赖项,以避免apt-get
以后需要手动安装。
制作包装
您可以用来制作软件包的一些工具包括dh_make
或者cpack
。
dh_make
将为您制作一个模板,以便您可以添加您喜欢的文件,然后用于dpkg-buildpackage
生成*.deb
文件。了解所有选项有点令人畏惧,需要时间来研究和理解,但这就是本机 debian/ubuntu 软件包的生成方式。
cpack
使用CMakeLists.txt
文件来定义规则。使用以下命令将文件添加到您的包中install()
命令和CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
将帮助您定义您的职位。我发现cpack
更容易学习,尤其是对于简单的包。
一旦你有了一个包,启动一个新的 Ubuntu(可能使用 chroot 或 vm),然后通过使用dpkg -i
.如果您的系统符合您的要求,那么您就成功了。现在您可以进行基本的 ubuntu 安装,并通过安装这个单个软件包来自定义它。
ISO包装
但我看到您想更进一步...您不想运行那个命令,您想获得开箱即用的自定义功能。你可以!
您需要以与 Debian 或 Ubuntu 相同的方式生成安装光盘,但将您自己的软件包添加到磁盘并将其设置为自动安装。
简单CDD可能是制作基于 Debian 的 ISO 的最简单的工具。但我不确定它与 Ubuntu 的配合效果如何。 LiveCD定制听起来是最有可能的解决方案。