HowTo eine Patch-Datei auf meinem Linux Bewerben

Ich bin ein neuer Linux und Unix Systembenutzer. Ich weiß auch, dass ich eine Binär-Paket mit up2date oder yum Befehl in Linux Patch kann. Ich frage mich, wenn es eine Möglichkeit, eine Patch-Datei heruntergeladen Quellcode auf einem Linux / UNIX anwenden wie Systemquellbaum in Betrieb?

Linux und UNIX-Source-Software kommt oft mit Sicherheit und anderem Patches. Sie können sie aus dem Internet oder Projekt-Homepage herunterladen. Es gibt eine Befehl namens Patch, der eine Diff-Datei oder Patch auf einen ursprünglichen Quellbaum anzuwenden.

Der Patch Befehl nimmt eine Patch-Datei Patchdatei einen Unterschied enthält, von dem Programm diff erzeugt Inserat und wendet diese Unterschiede zu einem oder mehreren Original-Dateien, gepatchte Versionen produziert. Normalerweise werden die gepatchten Versionen anstelle der Originale setzen.

Patch-Befehlssyntax

Die grundlegende Syntax lautet wie folgt:
$ patch

Um einen Patch anwenden, könnte man den folgenden Befehl in einer Shell ausgeführt:
$ patch

In diesem Beispiel Patch foo.c mit patch.diff-Datei:
$ Patch foo.c

Patches kann rückgängig gemacht werden, oder umgekehrt, mit dem ‚-R‘ Option:
$ Patch -R

Wie erstelle ich einen Patch?

Um einen Patch zu erstellen, könnte man den folgenden diff Befehl ausführen:
$ Diff -u oldfile-name-hier newfile-name-hier> patch.diff

Beispiel: Erstellen und Anwenden des Patches für hello.c Beispielprogramm auf einem Linux oder Unix ähnliches System

Erstellen Sie eine hello.c wie folgt:

verwenden Sie den Befehl diff als nächstes eine Standard-Diff-Patch-Datei erstellen genannt hello.patch:
$ Diff -u hello.c hallo-new.c> hello.patch
Um zu sehen, Befehl Patch Verwendung Katze wie folgt:
$ Cat hello.patch
Beispiel Ausgänge:

Um den Patch von hello.patch anwenden, geben Sie ein:

### Die hello.patch Patchdatei kennt den Namen der Datei gepatcht werden ## Patch < hello.patch

Sie können nun Programm zusammenstellen:
$ Cc hello.c -o hallo
Führen Sie es wie folgt:
$ ./hello
Beispiel Ausgänge:

Eine Notiz über die Arbeit an einem gesamten Quellbaum

Zuerst wird eine Kopie des Quellbaum machen:
## Original-Quellcode ist in lighttpd-1.4.35 / Verzeichnis ##
$ Cp -R lighttpd-1.4.35 / lighttpd-1.4.35-new /
Cd lighttpd-1.4.35-neues Verzeichnis und Änderungen nach Ihren Wünschen:
$ Cd lighttpd-1.4.35-new /
$ Vi geoip-MOD.C
$ Vi Makefile
Schließlich einen Patch mit dem folgenden Befehl erstellen:
$ Cd.
$ Diff -rupN lighttpd-1.4.35 / lighttpd-1.4.35-new /> my.patch
Sie können my.patch Datei patchen lighttpd-1.4.35-Quellcode auf einem anderen Computer / Server mit Patch-Befehl verwenden, wie oben erörtert:
patch -p1
Siehe Manpage von Patch und anderem Befehl für weitere Informationen und Nutzung - Patch (1), diff (1), bash (1)

Geschrieben von: Vivek Gite

Der Autor ist der Schöpfer der nixCraft und ein erfahrener Systemadministrator und ein Trainer für das Linux-Betriebssystem / Unix-Shell-Scripting. Er hat mit globalen Kunden und in verschiedenen Branchen tätig, darunter IT, Bildung, Verteidigung und Weltraumforschung und der Non-Profit-Sektor. Folgen Sie ihm auf Twitter. Facebook. Google+.

Teilen:

Ihre Unterstützung macht einen großen Unterschied:

Ich habe einen kleinen Gefallen zu bitten. Immer mehr Menschen das Lesen der nixCraft. Viele von Ihnen blockiert Werbung, die der rechten Seite, und die Werbeeinnahmen nicht ausreichen, um meine Betriebskosten zu decken. So können Sie sehen, warum ich für Ihre Hilfe bitten müssen. Die nixCraft, nimmt eine Menge meiner Zeit und harte Arbeit zu produzieren. Wenn jeder, der nixCraft liest, der es mag, trägt es mit Spenden zu unterstützen:

T-Shirt: Sysadmin, weil auch die Entwickler benötigen, heros

HowTo eine Patch-Datei auf meinem Linux Bewerben
HowTo eine Patch-Datei auf meinem Linux Bewerben

Verwandte Anleitungen und Howtos

Linux und UNIX-Source-Software kommt oft mit Sicherheit und anderem Patches. Sie können sie aus dem Internet oder Projekt-Homepage herunterladen. Es gibt eine Befehl namens Patch, der eine Diff-Datei oder Patch auf einen ursprünglichen Quellbaum anzuwenden.

Patch nimmt eine Patch-Datei Patchdatei einen Unterschied enthält, von dem Programm diff erzeugt Inserat und wendet diese Unterschiede zu einem oder mehreren Original-Dateien, gepatchte Versionen produziert.

erraten, was ich brauche einen Link auf die Datei .patch Syntax ist so ich weiß, was es bedeutet, und die Änderungen manuell anwenden können (es sei denn es eine andere Möglichkeit, es zu tun).

Hallo
Ich möchte dann zwei Patch-Datei in eine verschmelzen, wie kann ich das ohne Komplikationen getan und Brechen des source.If ich beide gelten separat dann scheitert es.

Tony Browning sagt:

Nur zur Information:

-p0 in Patch-Befehl -> gesamte Dateinamen
-p1 in Patch-Befehl -> Dateinamen vorangehenden erster Schrägstrich
-p2 in Patch-Befehl -> Dateinamen zweiten Schrägstrich vorhergehenden
etc.
Beispiel:
-p0 = / path / to / Patch / Datei
-p1 = path / to / Patch / Datei
-p2 = to / Patch / Datei
-p3 = Patch / Datei
-p4 = file

Verbrachte einige Zeit meinen Kopf über Kratzen, was -p0, -p1 bedeuten soll, und herauszufinden, wie Patch zu machen < /path/to/file work (is /path/to/file supposed to be the file to patch, or the patch file? and how about the other file? You need 2 files to make a patch, why only one?).
Lesen Sie den Mann Datei und traf schließlich die einfache Syntax, das ist, was ich schon erraten haben, zum Beispiel:
Patch fileTopatch.txt < myPatchFile.patch
oder ein Beispiel mit Verzeichnissen
Patch foo / bar / fileTopatch.txt < patches/myPatchFile.patch
Gerade hofft, dass dies jemand kommt in auf dieser Seite hilft, wie ich vor einer halben Stunde tat.

In Verbindung stehende Artikel