3 votos

Cómo reparar un archivo que reside en /Aplicaciones (parche no se puede encontrar el archivo de parche en la línea de entrada)?

Estoy tratando de revisión 5 archivos dentro de un Mac paquete de la aplicación utilizando el Terminal patch comando. Los archivos a ser el parche se especifican a través de una ruta absoluta de archivo (el nombre de archivo y ruta de acceso de inicio con una barra diagonal).

La salida cuando se ejecuta $ sudo patch -i ~/custom.patch está:

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

He comprobado que el archivo /Applications/Xyz.app/Contents/Resources/dashboard.js no existe en el uso de la ruta de archivo especificada usando el ls comando.

Regresión:

  1. Trató de ejecutar el parche de comandos desde la carpeta root usando $ cd /
  2. Trató de ejecutar el parche de comandos desde la carpeta root con la primera barra quita, que se traduce en un resultado prácticamente idéntico:

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 puede varios archivos dentro de una Aplicación para Mac OS X paquete de ser parcheado el uso de patch?

3voto

Creo que el problema es que no especifica el p opción.

Desde el manual para el 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.

Por lo que el comando debe ser algo así:

patch -p0 <custom.patch

o usted puede especificar el directorio en el que el parche debe aplicarse:

patch -d /path/to/dir <custom.patch

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X