ドキュメント
パッチ開発
それでもまだ読んでいないなら ドキュメントの概観是非、どうぞよろしくお願いします。
Hello world の例パッチ
tklpatch-example helloworld
これにより、tklpatch-example を実行して、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 apt-get 経由で tklpatch をインストールしている場合、または 名称: /usr/local/share/tklpatch/examples ソースからインストールするとき。例パッチも利用可能です 寸法: github 参照のため。
ゼロから新しいパッチのスケルトンを作成します。
mkdir mypatch mkdir mypatch/debs mkdir mypatch/overlay touch mypatch/conf; chmod +x mypatch/conf
これで、パッチがパッチ化されたアプライアンスを変更する方法を把握して、必要な結果を得ることができます。 試行錯誤で「生きて」システムで対話的に把握するのが最も簡単です。 VM にパッチを当てて、必要な変更を見つけるために実験する アプライアンス をインストールすることで、このようなテスト環境を設定できます。 chroot環境でも実験できます。
開発のヒントとコツ
TKLPatch は、インストールされた仮想 アプライアンス インスタンス内のパッチを増分的に開発したり、ISO の抽出されたルートファイルシステムで生成したりするモジュール設計を持っています。 画像。 速い成功で微調整し、テストする開発サイクルは、長いフィードバックループを持っているものよりも生産性が向上します。
chroot環境で設定および実験する方法:
tklpatch-extract-iso path/to/image.iso
これは、アプライアンスのファイルシステムとCDrootをISOから抽出します。 その後、アプライアンスのファイルシステムにchrootをすることができます。 chroot では、パッチが何をすべきかを簡単に調べることができます。例えば、パッケージを手動でインストールして、設定に調整します。 何をすべきかを知りたい場合は、パッチを反映するように更新してください(例えば、コンファへの指示を追加することにより、オーバーレイにファイルなど)
tklpatch-chroot path/to/image.rootfs
完了したら、実験した一時的なrootfとcdrootディレクトリを削除し、ISOにそれを適用することによってパッチ(できれば仮想マシンで)をテストすることができます 選択:
tklpatch path/to/image.iso path/to/mypatch
続いて、 公開する.