V
e
r

l
i
s
t
a
d
o

tractatus@lapipaplena:/# _

 

patch

Herramienta que permite aplicar un parche a un determinado fichero o directorio. Toma un fichero que contiene un listado de diferencias producidas por el programa diff y esas diferencias se aplica a uno o más archivos. Los nombres de los archivos para ser parcheado por lo general se toman del fichero del parche, pero si hay un solo archivo para ser parcheado puede ser especificado en la línea de comandos como originalfile.

1.-

Aplicar un parche a una aplicación instalada.

$ wget http://host/parche.patch
Descargar el parche
# patch --backup /usr/bin/aplicacion_a_parchear ~/parche.patch

Un ejemplo completo en archivos de texto:

Tenemos dos ficheros, file1 (archivo original) y file2 (archivo modificado) con el siguiente contenido:

$ cat file1
Me gusta linux
$ cat file2
Me gusta la libertad

Generar el parche parche con el comando diff:

$ diff -u file1 file2 > file.patch
$ cat file.patch
--- file1 2013-11-02 03:14:28.466555864 +0100
+++ file2 2013-11-02 03:14:46.230555684 +0100
@@ -1 +1 @@
-Me gusta linux
+Me gusta la libertad

Tenemos un tercer fichero con el siguiente contenido:

$ cat file3
Me gusta linux
No uso programario privativo

Y queremos parchearlo con el archivo que hemos creado previamente. El resultado sería el siguiente:

$ patch file3 < file.patch
patching file file3
$ cat file3
Me gusta la libertad
No uso programario privativo

Para anular un parche previamente aplicado:

$ patch -R file3 < file.patch
patching file file3
$ cat file3
Me gusta la libertad
No uso programario privativo
$ patch -p0 < parche.patch
Aplica un parche .patch en el directorio actual. El parámetro p indica a partir de que nivel inferior de subdirectorio hay que aplicar el parche. El 0 es para el directorio actual
$ patch -R -p0 < parche.patch
Deshace los cambios aplicados por el parche anterior
Navegando por staredsi.eu aceptas las cookies que utilizamos en esta web. Más información: Ver política de cookies
[0] 0:bash*
1837 entradas - Acerca del Tractatus
La Pipa Plena 2018