patch
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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.
Installation¶
patch ist in jeder Linux-Standardinstallation enthalten, kann aber über folgenden Befehl nachinstalliert werden: [1]
patch
Befehl zum Installieren der Pakete:
sudo apt-get install patch
Oder mit apturl installieren, Link: apt://patch
Aufruf¶
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 |
Beispiele¶
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
|
Patch rückgängig machen¶
Um einen Patch (mit Striplevel 1) rückgängig zu machen:
patch -R -p1 ORIGINALDATEI < PATCHDATEI
Links¶
Intern¶
Shell/Befehlsübersicht Übersicht über verschiedene Shell-Befehle
Extern¶