Patch
Zur Navigation springen
Zur Suche springen
Wie funktioniert ein Patch
- Patches machen Änderungen am Source-Code, um Features zu implementieren, Sicherheitslücken beheben oder Konfigurationen anpassen
- Änderungen werden aus einer .diff-Datei gelesen und an Zieldateien angewendet
- Manuell kann man diese mit dem Befehl patch durchführen
- Automatisches Versionsmanagement kann man mit git erreichen
Original Datei
- vim interfaces.org
auto eth0 iface eth0 inet static address XX.XX.XX.XX/YY gateway ZZ.ZZ.ZZ.ZZ
Gewünschte Datei
- vim interfaces.new
auto eth0 iface eth0 inet static address 192.168.88.99/24 gateway 192.168.88.1
Erzeugen einer .diff-Datei
- diff interfaces.org interfaces.new | tee interfaces.diff
3,4c3,4 < address XX.XX.XX.XX/YY < gateway ZZ.ZZ.ZZ.ZZ --- > address 192.168.88.99/24 > gateway 192.168.88.1
Patch anwenden
- patch interfaces.org < interfaces.diff
- cat interfaces.org
auto eth0 iface eth0 inet static address 192.168.88.99/24 gateway 192.168.88.1
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 |
| -R | Patch Rückgängig machen |