Según la página de descarga de Magento , en la sección de parches
Cargue el parche en su directorio raíz de Magento y ejecute el comando SSH apropiado: Para archivos de parche con la extensión de archivo `.sh: sh patch_file_name.sh Ejemplo: sh PATCH_SUPEE-1868_CE_1.7.0.2_v1.sh
Magento recomienda una invocación directa del sh
comando para ejecutar su parche runner. La extensión de archivo de .sh
soporta esto también.
Sin embargo, si observa la parte superior de cada archivo de parche de ejecución , la línea shebang apunta a bash
.
#!/bin/bash
# Patch apllying tool template
# v0.1.2
# (c) Copyright 2013. Magento Inc.
#
El programador en mí quiere confiar en el archivo fuente, pero el proceso no quiere obedecer lo que está escrito en el sitio web de Magento, el cínico se pregunta si el parche ha sido probado contra las diferencias entre bash y sh .
REQUIRED_UTILS='sed patch'
Todo lo que veo en los.sh
guiones. Los documentos de actualización para versiones recientes se leen como instrucciones estéreo, y la actualización no debería ser tan dolorosa.Respuestas:
Debes usar bash, en realidad. En la línea 14 del parche que señaló explícitamente está este código:
$((
es una expresión aritmética válida en XCU sh, pero((
no lo es).Sin embargo, en muchas plataformas similares a UNIX,
/bin/sh
es solo un enlace simbólico/bin/bash
. Cuando se invoca con el nombresh
, bash desactiva algunos de sus comportamientos POSIXly-no estrictos, pero no todos. Es probable que estos parches funcionen bien para bash invocado como sh.fuente
chmod +x script && ./script
el kernel intentará ejecutar el comando en la línea shebang con el archivo de script como primer o segundo argumento. Dependiendo de las circunstancias, no hay garantía de que haya ningún shell involucrado en ese árbol de procesos. Sin embargo, si ejecutash
con un script como argumento, se ignorará la línea shebang.En caso de que ayude a alguien en el futuro, he usado Phpstorm para aplicar el parche y su herramienta de parche es excelente. Se tardó menos de 30 segundos en aplicar el parche sin ningún problema y también puede ver y ver las diferencias que tienen los archivos.
fuente