Zum Inhalt springen
TURNKEYGNU / LINUX
AnwendungenDokumentationBlogBildschirmfotosGitHubTurnKey Hub
文Deutsch
EnglishEspañol中文日本語PortuguêsDeutsch
Haus/Patch-Entwicklung

Dokumentation

Patch-Entwicklung

Wenn Sie noch nicht gelesen haben, Übersichtsdokumentation, bitte tun Sie es jetzt.

Hello World Beispiel Patch

tklpatch-example helloworld

Dadurch wird tklpatch-Beispiel ausgeführt, um einen Beispiel-Patch im Verzeichnis helloworld/ zu erstellen. Wenn mehr feinkörnige Kontrolle in Ihrem Patch benötigt wird, kann ein erweitertes Beispiel mit dem --advanced Schalter.

Wenn dieser Patch auf ein ISO angewendet wird, wird ein neues ISO erstellt, in dem die Hallo Das Paket ist installiert und die Nachricht des Tages wurde geändert. Lassen Sie es uns auf turnkey-core.iso (das wir bereits heruntergeladen haben) ausprobieren und tklpatch in Aktion sehen:

tklpatch turnkey-core.iso helloworld

Hinter den Kulissen, als tklpatch unseren helloworld Patch anwendete, folgte er den Anweisungen in der "conf" -Datei des Patches:

$ 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 Beispiel-Patch

Für Bildungszwecke enthält tklpatch einen komplexeren Beispiel-Patch, der TurnKey LAMP in ein Drupal5 Appliance verwandelt. /usr/share/tklpatch/examples wenn tklpatch über apt-get installiert ist oder /usr/local/share/tklpatch/examples wenn von der Quelle installiert. Der Beispiel-Patch ist auch auf github als Referenz.

 

Erstellen Sie das Skelett eines neuen Patches von Grund auf neu

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

Jetzt müssen Sie herausfinden, wie Ihr Patch das gepatchte Appliance ändern soll, um das gewünschte Ergebnis zu erhalten. Es ist oft am einfachsten, dies interaktiv in einem "live" -system durch versuch und irrtum herauszufinden. Sie können eine solche Testumgebung einrichten, indem Sie das Appliance installieren, das Sie in einer VM patchen möchten, und dann experimentieren, um herauszufinden, welche Änderungen Sie vornehmen müssen. Sie können auch in einer chroot-umgebung experimentieren.

 

Entwicklungstipps und Tricks

TKLPatch hat ein modulares Design, mit dem Sie Ihren Patch schrittweise in einer installierten virtuellen Appliance-Instanz oder im extrahierten Root-Dateisystem eines ISO entwickeln können. Ein Entwicklungszyklus, in dem man schnell nacheinander optimiert und testet, ist oft produktiver als einer mit einer langen Feedbackschleife.

Wie man in einer chroot-umgebung einrichtet und experimentiert:.

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

Dadurch werden das Dateisystem und die cdroot des Appliance aus dem ISO extrahiert. Innerhalb der chroot ist es einfach zu experimentieren, um herauszufinden, was Ihr Patch tun soll. zum Beispiel können Sie manuell Pakete installieren, die Konfiguration optimieren usw. Wenn Sie wissen, was zu tun ist, aktualisieren Sie mypatch, um es widerzuspiegeln (z. B. durch Hinzufügen von Anweisungen zu conf, Dateien zum Overlay usw.)

tklpatch-chroot path/to/image.rootfs

Sobald Sie fertig sind, können Sie die temporären Rootfs und CDroot-Verzeichnisse entfernen, in denen Sie experimentiert haben, und Ihren Patch (vorzugsweise in einer virtuellen Maschine) testen, indem Sie ihn auf Ihr ISO von ISO anwenden. Wahl:

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

Als nächstes: veröffentlichen Sie es.

TURNKEYGNU / LINUX

Eigene Infrastruktur betreiben, ohne bei null anzufangen.

TurnKey erkunden
Über TurnKeyDokumentationHäufige FragenBlogGitHub
Frei und quelloffenStandardmäßig sicherSofort einsatzbereit