跳到正文
TURNKEYGNU / LINUX
应用文档博客截图GitHubTurnKey Hub
文中文
EnglishEspañol中文日本語PortuguêsDeutsch
ưμ㼯A/补丁开发

文档

补丁开发

如果你还没有读到 概览文件请现在就去

你好,世界实例补丁

tklpatch-example helloworld

这执行 tklpatch- 实例, 在 helloworld/ 目录中创建一个实例补丁 。 如果在您的补丁中需要更多的精细的控件, 那么可以使用此选项创建高级示例 。 --advanced 密码 切换。

当此补丁被应用到 ISO 时, 它会创建一个新的 ISO, 其中 哈啰 软件包已安装, 更改了当天的消息。 让我们在 turnkey- core.iso (我们早些时候下载了它) 上尝试一下, 并看到 tklpatch 正在操作 :

tklpatch turnkey-core.iso helloworld

在幕后, tklpatch 应用了我们的 Helloworld 补丁时, 它遵循了补丁“ conf” 文件中的指令 :

$ cat helloworld/conf
#!/bin/bash -ex
install()
{
    apt-get update
    DEBIAN_FRONTEND=noninteractive apt-get -y \
        -o DPkg::Options::=--force-confdef \
        -o DPkg::Options::=--force-confold \
        install $@
}

# installs hello - a highly useful package
install hello

# tell the world what we've done!
echo 'Hello world - I just patched TurnKey!' >> /etc/issue


Drupal5 实例补丁

为了教育目的,tklpatch包含一个更复杂的示例补丁,将TurnKey LAMP变成Drupal5 应用设备. 补丁位于 /usr/share/tklpatch/examples 密码 tklpatch 通过apt-get安装时,或 /usr/local/share/tklpatch/examples 密码 。示例补丁也可以在 github 密码 以供参考。

 

从零开始创建新补丁的骨架

mkdir mypatch
mkdir mypatch/debs
mkdir mypatch/overlay
touch mypatch/conf; chmod +x mypatch/conf

现在,你需要想出你的补丁应该如何改变补丁的应用设备,以获得你想要的结果. 在"活"系统中通过试和误读,往往很容易交互地找出来. 您可以安装您想要在 VM 中补丁的 应用设备 来设置这样的测试环境, 然后进行实验, 以找到您需要做出哪些改变 。 也可以在铬化环境下进行实验.

 

发展技巧和技巧

TKLPatch有一个模块化设计,允许您在安装的虚拟 应用设备 实例或 ISO 提取的根文件系统中,逐步开发您的补丁 图像。一个快速连续的调整和测试的开发周期,往往比一个反馈循环长的周期更有成效。

如何在绿色环境中设置和实验:

tklpatch-extract-iso path/to/image.iso

这将从 ISO 中提取 应用设备 的文件系统及 cdroot。 您可以先将 chroot 切入 应用设备 的文件系统 。 在chroot内部,很容易进行实验来发现您的补丁应该做什么。例如,你可以手动安装包,使调制器切换到配置等. 当您知道需要做什么时, 更新 mypatch 以反映它( 例如, 在 conf 中添加指令, 文件到 覆盖 中等) 。

tklpatch-chroot path/to/image.rootfs

一旦完成,您可以删除您在其中实验的临时rootf和cdrot目录,并通过将补丁应用到您的 ISO 测试您的补丁(最好是在虚拟机中) 选择 :

tklpatch path/to/image.iso path/to/mypatch

下一个 发表吧.

TURNKEYGNU / LINUX

无需从零开始,掌控自己的基础设施。

探索 TurnKey
关于文档常见问题博客GitHub
自由开源默认安全随时可部署