Estoy tratando de parchear 5 archivos dentro de un paquete de aplicaciones de Mac usando el patch
comando Terminal. Los archivos que se parchearán se especifican mediante una ruta de archivo absoluta (el nombre de archivo y la ruta comienzan con una barra inclinada).
La salida cuando se ejecuta $ sudo patch -i ~/custom.patch
es:
can't find file to patch at input line 3
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|--- /Applications/Xyz.app/Contents/Resources/dashboard.js
|+++ /Applications/Xyz.app/Contents/Resources/dashboard.js
--------------------------
File to patch: ^C
Verifiqué que el archivo /Applications/Xyz.app/Contents/Resources/dashboard.js existe en la ruta de archivo especificada usando el ls
comando.
Regresión:
$ cd /
can't find file to patch at input line 3
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|--- Applications/Xyz.app/Contents/Resources/dashboard.js
|+++ Applications/Xyz.app/Contents/Resources/dashboard.js
--------------------------
File to patch: ^C
¿ Cómo se pueden parchear varios archivos dentro de un paquete de aplicaciones de Mac OS X usando patch
?
Creo que el problema es que no estás especificando la opción p.
Del manual del parche:
For example, supposing the file name in the patch file was
/u/howard/src/blurfl/blurfl.c
setting -p0 gives the entire file name unmodified, -p1 gives
u/howard/src/blurfl/blurfl.c
without the leading slash, -p4 gives
blurfl/blurfl.c
and not specifying -p at all just gives you
blurfl.c.
Whatever you end up with is looked for either in the current directory,
or the directory specified by the -d option.
Entonces el comando debería ser algo como:
patch -p0 <custom.patch
o puede especificar el directorio al que se debe aplicar el parche:
patch -d /path/to/dir <custom.patch
-p -d
parece prometedor cuando todos los archivos de parches están en la misma carpeta. -p
no es una respuesta, ya que mi deseo es especificar ubicaciones de archivos de rutas absolutas desde el archivo de parche. El deseo es parchear diferentes archivos en diferentes ubicaciones de rutas absolutas.-d
eso es cierto. el parámetro -p
funciona con los nombres de archivo que se encuentran en el archivo de parche. por lo tanto, con -p0
debería poder especificar rutas de archivo absolutas
Copia de seguridad profesional
/Applications/
versusApplications/