Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
patch hilft beim Patchen von Software, also dem Verbessern oder Erweitern der Fähigkeiten eines Programms am Rohcode. Patches werden wegen der besseren Wartbarkeit meist per Versionskontrolle verwaltet. Patch-Dateien sind meist mit .diff- oder .patch-Endung zu finden.
patch ist in jeder Linux-Standardinstallation enthalten, kann aber über folgenden Befehl nachinstalliert werden: [1]
patch
mit apturl
Paketliste zum Kopieren:
sudo apt-get install patch
sudo aptitude install patch
Die allgemeine Syntax lautet [2]:
patch [OPTIONEN] ORIGINALDATEI < PATCHDATEI
patch kennt folgende Optionen:
Optionen von patch | |
Option | Beschreibung |
-p NUM | zieht NUM führende Komponenten von Dateinamen ab, siehe Beispiele |
-E | löscht Zieldateien, die nach dem Patchen leer sind |
-b | macht ein Backup der Originalinhalte jeder Datei |
--backup-if-mismatch | macht nur ein Backup, wenn der Patch nicht genau passt |
--verbose | gibt zusätzliche Informationen über vollführte Arbeiten aus |
--dry-run | ändert die Dateien nicht wirklich; gibt nur aus was passieren würde |
-d VERZEICHNIS | ändert erst das Arbeitsverzeichnis zu VERZEICHNIS |
patch -p1 ORIGINALDATEI < PATCHDATEI
Die Option -p
gibt die Anzahl an Stripleveln an, also der Anzahl der Verzeichnistiefe, die in der Patch-Datei von den Pfaden abgezogen wird. Bei a/foobar/barfoo/foo
führt also -p1
zum einmaligen Abziehen und es wird somit die Datei foobar/barfoo/foo vom aktuellen Verzeichnis aus gepatched. Bei -p2
wäre es die Datei barfoo/foo. Das Ausgangsverzeichnis (standardmäßig das Aktuelle) kann mit der Option -d
geändert werden.
Dateien, die erstellt oder gelöscht werden, sind in der Patch-Datei durch folgende Zeile zu erkennen:
1 | +++ /dev/null
|
Um einen Patch (mit Striplevel 1) rückgängig zu machen:
patch -R -p1 ORIGINALDATEI < PATCHDATEI
Diese Revision wurde am 25. Juli 2016 04:10 von MisterX erstellt.