Tengo un parche con rutas absolutas que deseo usar. es decir, las primeras líneas son las siguientes.
--- /usr/share/apps/plasma/packages/org.kde.pager/contents/ui/main.qml 2014-10-10 18:47:23.000000000 +1100
+++ /usr/share/apps/plasma/packages/org.kde.pager/contents/ui/main.qml.mod 2014-11-11 09:44:17.786200477 +1100
Sin embargo, falla a menos que esté en el directorio raíz.
~$ cd
~$ sudo patch -i /tmp/fix_kde_icons.patch -p0
Ignoring potentially dangerous file name /usr/share/apps/plasma/packages/org.kde.pager/contents/ui/main.qml
Ignoring potentially dangerous file name /usr/share/apps/plasma/packages/org.kde.pager/contents/ui/main.qml.mod
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
...
~$ cd /tmp
/tmp$ sudo patch -i /tmp/fix_kde_icons.patch -p0
... #same error as above
/tmp$ cd /usr
/usr$ sudo patch -i /tmp/fix_kde_icons.patch -p0
... #same error as above
/usr$ cd /
/$ sudo patch -i /tmp/fix_kde_icons.patch -p0
patching file /usr/share/apps/plasma/packages/org.kde.pager/contents/ui/main.qml
¿Hay alguna manera de hacer patch
uso de la ruta absoluta con cualquier directorio de trabajo?
patch
comando./tmp/foo
. Estoy más interesado en una respuesta genérica que se aplique apatch
.Respuestas:
Mirando el código fuente del parche GNU, este comportamiento está integrado desde la versión 2.7. A partir del parche 2.7.1 de GNU, solo
..
se aceptan rutas relativas que no contengan , a menos que el directorio actual sea el directorio raíz.Para aplicar un parche que contiene rutas absolutas, puede usar
En versiones recientes del parche GNU, simplemente puede
fuente
cd /usr
también falló, a pesar de que los archivos de destino están en este directorio./
, rechace cualquier ruta absoluta o ruta que contenga un..
componente.sudo patch -d/ -p0 <foo.patch