# LINUX: Patch (Unix) {{METATOC 4-5}} L'outil patch est un programme Unix qui met à jour les fichiers texte en suivant les instructions contenues dans un fichier séparé, appelé fichier de correctif. Le fichier de correctif (également appelé patch en abrégé) est un fichier texte composé d'une liste des différences obtenue en exécutant le programme diff sur le fichier original et le fichier mis à jour en tant qu'arguments. Mettre à jour des fichiers avec correctif est souvent appelé appliquer le correctif ou simplement appliquer un correctif aux fichiers. Les fichiers diff qui servent d’entrée au correctif sont des fichiers texte lisibles, ce qui signifie qu’ils peuvent être facilement consultés ou modifiés par des humains avant utilisation. En plus du programme "diff", des diffs peuvent également être produits par d'autres programmes tels que Subversion, CVS, RCS, Mercurial et Git. Les correctifs ont été la composante essentielle de nombreux systèmes de contrôle de source, y compris CVS. #### Options avancéees Lorsque des options plus avancées sont utilisées, les correctifs peuvent être appliqués même aux fichiers modifiés entre-temps, à condition que ces modifications n'interfèrent pas avec le correctif. Pour ce faire, il faut utiliser "context diffs" et "unified diffs" (également "Unidiffs"), qui entoure chaque changement de contexte, qui est le texte immédiatement avant et après la pièce modifiée. Patch peut ensuite utiliser ce contexte pour localiser la région à patcher, même si elle a été déplacée par des modifications antérieures Fichier, en utilisant les numéros de ligne dans les diffs comme point de départ.En raison de cette propriété, les diffs contextuelles et unifiées sont la forme préférée de correctifs à soumettre à de nombreux projets logiciels. Les fonctionnalités ci-dessus rendent diff et patch particulièrement populaires pour l’échange de modifications de logiciels à code source ouvert. Les tiers peuvent télécharger le dernier code source disponible, le modifier et l’envoyer, sous une forme différente, à l’équipe de développement. L’équipe de développement a la capacité de vérifier efficacement les correctifs avant de les appliquer et de les appliquer à une base de code plus récente que celle à laquelle le développeur externe avait accès.* #### Exemples d'utilisation Pour créer un patch, exécuter la commande suivante dans un shell: ``` diff -u oldFile newFile > mods.diff # -u tells diff to output unified diff format ``` Pour appliquer un patch, exécuter la commande suivante dans un shell: ``` patch