Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
patch [Le 26/06/2014, 16:06] – [Patcher explicitement un seul fichier] 207.45.249.149patch [Le 11/09/2022, 11:41] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art
Ligne 1: Ligne 1:
 {{tag>bureautique}} {{tag>bureautique}}
- 
 ---- ----
  
Ligne 7: Ligne 6:
 Patch permet d'appliquer un patch obtenu au moyen d'un diff (svn diff, git diff, ...) Patch permet d'appliquer un patch obtenu au moyen d'un diff (svn diff, git diff, ...)
  
 +Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>patch|patch]]**.
  
- 
- 
- 
- 
- 
- 
-Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://patch|patch]]**. 
 =====Utilisation===== =====Utilisation=====
  
-==== Créer un patch entre deux fichiers ==== +==== Créer un patch entre deux fichiers ====
 Pour créer un patch entre deux fichiers, il suffit de taper la commande : Pour créer un patch entre deux fichiers, il suffit de taper la commande :
  
   diff -u fichier1 fichier2 > mon.patch   diff -u fichier1 fichier2 > mon.patch
  
-==== Créer un patch entre deux répertoires ==== +==== Créer un patch entre deux répertoires ====
 Pour créer un patch entre deux répertoires, il suffit de taper la commande : Pour créer un patch entre deux répertoires, il suffit de taper la commande :
  
   diff -Naur rep1/ rep2/ > mon.patch   diff -Naur rep1/ rep2/ > mon.patch
  
-==== Patcher un dossier ==== +==== Patcher un dossier ====
 L'utilisation de l'outil patch se fait en ligne de commande. La syntaxe est la suivante : L'utilisation de l'outil patch se fait en ligne de commande. La syntaxe est la suivante :
  
Ligne 42: Ligne 35:
  
  
-==== Patcher tous les fichiers indiqués par le patch ==== +==== Patcher tous les fichiers indiqués par le patch ====
  
   patch < mon.patch   patch < mon.patch
  
-==== Patcher explicitement un seul fichier ==== +==== Patcher explicitement un seul fichier ====
  
-  patch monfichier.truc < mon.patch+  patch monfichier.truc < mon.patchv<note warning>warning</note>
  
-==== Patcher en mode verbeux sans appliquer réellement le patch ==== +==== Patcher en mode verbeux sans appliquer réellement le patch ====
  
   patch --verbose --dry-run < mon.patch   patch --verbose --dry-run < mon.patch
  
-==== Retour arrière sur un passage de patch  ==== +==== Retour arrière sur un passage de patch  ====
  
   patch --reverse < mon.patch   patch --reverse < mon.patch
 +  
 +==== Application d'un patch avec conservation des permissions  ====
 +<note warning>Attention: La commande patch ne preserve pas les [[:permissions]], mais les positionne en 644, cela est important notamment lorsqu'on patch un fichier dans **/etc/grub.d/** par exemple.
 +</note>
 +Pour préserver les permissions, il faut utiliser l'option **''%%--backup%%''** et ensuite faire un chmod **''%%--reference%%''**, exemple :
 +
 +  cd /etc/grub.d/ && patch --backup -p3 00_header_754921.patch
 +  chmod --reference=00_header.orig 00_header
 +  
 +===== Voir aussi =====
 +  * [[https://wiki.debian-fr.xyz/Utiliser_diff_et_patch|Explications plus avancées]] de diff et patch
  
 ---- ----
 //Contributeurs: dufoli// //Contributeurs: dufoli//