HowTo Appliquer un fichier de Patch To My Linux

Je suis un nouvel utilisateur du système Linux et Unix. Je sais aussi que je peux patcher paquet binaire en utilisant up2date ou commande yum sous Linux. Je me demandais est s'il y a un moyen d'appliquer un fichier correctif au code source téléchargé sur un arbre source du système Linux / UNIX comme l'exploitation?

Les logiciels Linux et UNIX vient souvent avec la sécurité et d'autres correctifs. Vous pouvez les télécharger à partir d'Internet ou d'un projet page d'accueil. Il y a une commande appelée correctif qui applique un fichier diff ou d'un patch à un arbre source d'origine.

La commande patch prend un fichier patch rustine contenant une liste de différences produit par le programme diff et applique ces différences à un ou plusieurs fichiers d'origine, produisant des versions corrigées. Normalement, les versions corrigées sont mises en place des originaux.

syntaxe de commande patch

La syntaxe de base est la suivante:
$ patch

Pour appliquer un patch, on peut exécuter la commande suivante dans un shell:
$ patch

Dans cet exemple, foo.c patch avec fichier patch.diff:
$ patch foo.c

Les patchs peuvent être défaits ou inversés, avec l'option « R »:
$ patch -R

Comment puis-je créer un patch?

Pour créer un patch, on peut exécuter la commande diff suivant:
$ Diff -u oldfile-nom-ici titi-nom-ici> patch.diff

Exemple: Création et application du patch pour le programme d'échantillonnage hello.c sur un serveur Linux ou Unix comme système

Créer un hello.c comme suit:

Ensuite, utilisez la commande diff pour créer un fichier de patch diff unifié appelé hello.patch:
$ Diff -u hello.c bonjour-new.c> hello.patch
Pour voir comme suit commande l'utilisation du patch de chat:
hello.patch $ cat
Sorties Exemples:

Pour appliquer le patch de hello.patch, entrez:

### Le rustine de hello.patch connaît le nom du fichier à patcher ## Patch < hello.patch

Vous pouvez maintenant compiler le programme:
$ Cc hello.c -o bonjour
Exécuter comme suit:
./hello $
Sorties Exemples:

Une note de travailler sur une arborescence entière

Tout d'abord, faire une copie de l'arbre source:
## code source d'origine est dans lighttpd-1.4.35 / répertoire ##
$ Cp-R lighttpd 1.4.35 / lighttpd-1.4.35 nouveau /
Cd à lighttpd-1.4.35-répertoire et apporter des modifications selon vos besoins:
$ Cd-lighttpd 1.4.35 nouveau /
$ Vi geoip-mod.c
$ Vi Makefile
Enfin, créez un patch avec la commande suivante:
cd $.
$ Diff -rupN lighttpd-1.4.35 / lighttpd-1.4.35 nouveau /> my.patch
Vous pouvez utiliser my.patch fichier à patcher lighttpd-1.4.35 code source sur un autre ordinateur / serveur en utilisant la commande patch comme indiqué ci-dessus:
patch -p1
Voir la page de manuel de patch et autres commandes pour plus d'informations et l'utilisation - patch (1), diff (1), bash (1)

Publié par: Vivek Gite

L'auteur est le créateur de nixCraft et un sysadmin expérimenté et un entraîneur pour le système d'exploitation Linux / Unix scripts shell. Il a travaillé avec des clients internationaux et dans diverses industries, y compris l'informatique, l'éducation, la défense et la recherche spatiale et le secteur sans but lucratif. Suivez-le sur Twitter. Facebook. Google+.

Partager sur:

Votre soutien fait une grande différence:

J'ai une petite faveur à vous demander. Plus les gens lisent le nixCraft. Beaucoup d'entre vous bloquer la publicité qui est votre droit, et les recettes publicitaires ne sont pas suffisants pour couvrir mes frais d'exploitation. Ainsi, vous pouvez voir pourquoi je dois demander votre aide. Le nixCraft, prend beaucoup de mon temps et beaucoup de travail à produire. Si tout le monde qui lit nixCraft, qui aime, contribue à soutenir les dons:

T-shirt: sysadmin parce que même les développeurs ont besoin Heros

HowTo Appliquer un fichier de Patch To My Linux
HowTo Appliquer un fichier de Patch To My Linux

tutoriels connexes et howtos

Les logiciels Linux et UNIX vient souvent avec la sécurité et d'autres correctifs. Vous pouvez les télécharger à partir d'Internet ou d'un projet page d'accueil. Il y a une commande appelée correctif qui applique un fichier diff ou d'un patch à un arbre source d'origine.

Patch prend un fichier patch rustine contenant une liste de différences produit par le programme diff et applique ces différences à un ou plusieurs fichiers d'origine, produisant des versions corrigées.

devinez ce que je besoin est un lien vers la syntaxe du fichier .patch donc je sais ce que cela signifie et peut appliquer les changements manuellement (à moins qu'il ya une autre façon de le faire).

salut
Je veux fusionner deux fichiers de patch dans un alors comment je peux obtenir ce fait sans complications et briser le source.If je demande à la fois séparément, puis elle échoue.

dit Tony Browning:

Juste pour informations:

-p0 dans la commande patch -> nom de fichier entier
-p1 à commande patch -> nom de fichier précédent première barre oblique
-p2 à commande patch -> nom de fichier précédent deuxième barre oblique
etc.
Exemple:
-= p0 / path / to / patch / fichier
-p1 = path / to / patch / fichier
-p2 = à / patch / fichier
-p3 = Patch / fichier
-p4 = fichier

Nous avons passé un peu de temps à me gratter la tête sur ce que -p0, -p1 est censé signifier et travailler comment faire pièce < /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?).
Lisez le fichier homme et enfin rencontré la syntaxe simple, qui est ce que je l'aurais deviné, par exemple:
Patch fileTopatch.txt < myPatchFile.patch
ou, par exemple avec des répertoires
Patch foo / bar / fileTopatch.txt < patches/myPatchFile.patch
Tout espère que cela aide quelqu'un arrivant sur cette page comme je l'ai fait il y a une demi-heure.

Articles Liés