Linux-opdrachten

Hoe de patch -opdracht in Linux uit te voeren?

Hoe de patch -opdracht in Linux uit te voeren?
De "patch" is een commando voor het toevoegen van patchbestanden aan broncode of tekstbestanden. Het neemt invoer als een patchbestand en past verschillen toe op originele bestanden. We gebruiken de tool "diff" om het verschil te zien.

De "diff" wordt afgekort als "verschillen" en wordt gebruikt om de inhoud van twee bestanden te vergelijken en de wijzigingen in de standaarduitvoer weer te geven.

Een set broncodes vormt een stukje software. Ontwikkelaars bouwen de broncode die in de loop van de tijd evolueert. Het verkrijgen van een nieuw bestand voor elke update is onrealistisch of tijdrovend. Daarom is de veiligste methode om alleen verbeteringen te verspreiden. De wijzigingen worden aangebracht in het oude bestand en vervolgens wordt een nieuw of gepatcht bestand gemaakt voor de nieuwe softwareversie.

Deze handleiding laat zien hoe u het "diff"-commando gebruikt om een ​​patchbestand te genereren en het vervolgens toe te passen met het "patch"-commando.

Syntaxis:

De syntaxis van de "patch” commando is als volgt:

$ patch [opties] [origineel bestand [patchbestand]]
$ patch -pnum

Een patchbestand maken met "diff":

Broncodebestand 1:

Ten eerste zijn er twee verschillende versies van een broncode nodig om een ​​patchbestand te maken. Het broncodebestand dat ik heb gemaakt, heet "mijn bestand.c”:s

#include
int hoofd()
printf("Hallo LinuxHint\n");

Broncodebestand 2:

Kopieer nu de inhoud van mijn bestand.c in de nieuw_mijnbestand.c, gebruik makend van:

$ cp mijnbestand.c nieuw_mijnbestand.c

Breng enkele wijzigingen aan in het nieuw gemaakte bestand:

#include
ongeldig hoofd()
printf ("Hallo Linux-hint");
printf("Welkom bij linuxhint");

Verschil controleren:

Laten we een patch-bestand maken met de naam als mijn bestand.pleister:

$ diff -u mijnbestand.c nieuw_mijnbestand.c

U kunt het patchbestand afdrukken door de onderstaande opdracht uit te voeren:

$ kat mijnbestand.patch

Het patchbestand toepassen:

Gebruik om een ​​patch toe te passen:

$ patch < myfile.patch

Zorg ervoor dat het patchbestand zich in de map bevindt waar het broncodebestand is geplaatst.

Maak een back-up voordat u de patch toepast:

Gebruik "-b” optie om een ​​back-up van het patchbestand te maken:

$ patch -b < myfile.patch

Versie back-upbestand instellen

Als u meerdere back-ups van een enkel back-upbestand nodig hebt, gebruik dan de "-V" keuze. Het stelt het versienummer van elk back-upbestand in. Voer de onderstaande opdracht uit:

$ patch -b -V genummerd < myfile.patch

Patchbestanden valideren

Als u het resultaat van het patchen wilt controleren of observeren, gebruik dan "-oefening" keuze. Het brengt geen enkele wijziging aan in het originele bestand:

$ patch --dry-run < myfile.patch

Een patch terugdraaien/ongedaan maken

De optie "-R" wordt gebruikt om een ​​patch die al is toegepast ongedaan te maken of terug te draaien.

$ patch < file.patch
$ ls -l mijnbestand.c
$ patch -R < myfile.patch
$ ls -l mijnbestand.c

Conclusie:

In het Linux-besturingssysteem is "patch" een commando waarmee we patchbestanden kunnen toepassen op de broncodes of configuratiebestanden. Het patchbestand wordt gebruikt voor software-updatedoeleinden. Het verschil tussen de originele en nieuwe bestanden wordt bewaard in patch-bestanden en de opdracht "diff" wordt gebruikt om het verschil of de patch te krijgen. We bespraken het gebruik van de commando's "diff" en "patch" met een aantal opties zoals het maken van back-ups, drooglopen en het terugdraaien van de aangebrachte patch.

Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...
0 A.D. zelfstudie
Van de vele strategiespellen die er zijn, 0 A.D. slaagt erin om op te vallen als een uitgebreide titel en een zeer diep, tactisch spel ondanks dat het...
Unity3D-zelfstudie
Inleiding tot Unity 3D Unity 3D is een krachtige game-ontwikkelingsengine. Het is platformoverschrijdend, zodat je games voor mobiel, internet, deskto...