¿Cómo parchear un file que reside en / Aplicaciones (el parche no puede encontrar el file en el parche en la línea de input)?

Estoy intentando parchar 5 files dentro de un package de aplicaciones Mac usando el command patch del terminal. Los files a ser parche se especifican utilizando una ruta de file absoluta (el nombre del file y la ruta comienzan con una barra inclinada).

El resultado al ejecutar $ 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 

He verificado que el file / Aplicaciones / Xyz.app/Contents/Resources/dashboard.js existe usando en la ruta de file especificada utilizando el command ls .

Regresión:

  1. Intenté ejecutar el command de parche desde la carpeta raíz usando $ cd /
  2. Intenté ejecutar el command de parche desde la carpeta raíz con la primera barra oblicua eliminada, lo que da como resultado un resultado casi 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 se pueden parchear varios files dentro de un package de aplicación Mac OS X usando patch ?

  • El command Execute Terminal falla en BetterTouchTool. ¿Por qué?
  • search una palabra en Dictionary.app en Terminal
  • Problemas con un simple script de shell
  • terminal mac que muestra otro nombre que no sea el nombre de host
  • ¿Cómo puedo abrir todos los files en todos los subdirectorys de una carpeta?
  • ¿Puedo ejecutar la parte superior como protector de pantalla?
  • Script Bash para hacer clic en el button en una página HTML
  • Agregar Gradle a PATH
  • One Solution collect form web for “¿Cómo parchear un file que reside en / Aplicaciones (el parche no puede encontrar el file en el parche en la línea de input)?”

    Creo que el problema es que no estás especificando la opción p.

    Del 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. 

    Entonces el command debería ser algo así como:

     patch -p0 <custom.patch 

    o puede especificar el directory al que se aplicará el parche:

     patch -d /path/to/dir <custom.patch 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).