para descargar descarga check security magento patch

security - descargar - magento download center



Error al reparar Magento 1.7.1 Hunk#1 Falló en (3)

Veo la última notificación de Critical Reminder en mi Magento Dashboard v.1.7.0.2 (2 important security patches (SUPEE-5344 and SUPEE-1533)...)

Por lo tanto, los descargué y los instalé correctamente en otros Magento (por ejemplo, 1.6.0 , 1.6.1 ), pero 1.7.0.2 estos errores en esta versión 1.7.0.2

[root@oc1 httpdocs]# sh PATCH_SUPEE-1533_EE_1.12.x_v1-2015-02-10-08-19-16.sh Checking if patch can be applied/reverted successfully... ERROR: Patch can''t be applied/reverted successfully. patching file app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php Hunk #1 FAILED at 444. 1 out of 1 hunk FAILED -- saving rejects to file app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php.rej patching file app/code/core/Mage/Adminhtml/controllers/DashboardController.php Hunk #1 FAILED at 92. 1 out of 1 hunk FAILED -- saving rejects to file app/code/core/Mage/Adminhtml/controllers/DashboardController.php.rej

Estaba buscando y encontré que este parche de Magento no se pudo instalar , pero no funcionó.

Descargo en Windows, Mac y Linux el archivo .sh, y el resault es el mismo ... ¿Algunas ideas?


Estoy usando Windows en mi máquina local. El servidor es Linux, por supuesto. Y uso Git para el control de versiones.

Para dos2unix : intente utilizar la utilidad dos2unix para intentar que los finales de línea de sus archivos .php coincidan con el archivo de parche .sh. (Creo que también puede ejecutar dos2unix en el archivo .sh o unix2dos en el archivo .sh, alguna combinación para hacer que ambos sean iguales).

Aunque creo que tus mensajes de error se ven un poco diferentes a los míos. En realidad, ¿has buscado en el "archivo de rechazo"? Si esto no es un problema de final de línea, ¿puede pensar en algo diferente entre sus instalaciones 1.6 y 1.7? (He parchado 1.7.0.2 y 1.9.0.1 usando el método que describo aquí). Si inspecciona el archivo Graph.php, ¿hay alguna edición en él?

Aquí hay más sobre lo que funcionó para mí:

Utilicé Cygwin (Gitbash parecía tener problemas con las rutas de archivos de Linux vs Windows y dio el error /app/etc must exist ). También tuve que ejecutar Cygwin como administrador para evitar un error de permiso de archivo (que es extraño y probablemente exclusivo de mi configuración).

Pero lo principal que tenía que hacer era ejecutar dos2unix en los archivos que el parche intentaba diff . Lo hice editando los archivos de parche .sh que se pueden ver hacia el final del archivo que tienen las rutas a los archivos que se cambiarán.

Así que edité el archivo .sh agregando estas dos líneas en la línea 66 antes del comentario # 5. File pathes : -

# extra steps for windows CRLF: dos2unix app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php dos2unix app/code/core/Mage/Adminhtml/controllers/DashboardController.php

Es posible que desee considerar un plan B y editar los archivos manualmente; no hay muchos cambios

Sin embargo, el parche 5344 tiene algunos cambios más. Para eso agregué estas líneas antes del comentario # 5. File pathes en el archivo PATCH_SUPEE-5345_CE_1.7.0.2_v1-2015-02-10-08-11-22.sh : -

# extra steps for windows CRLF: dos2unix lib/Varien/Db/Adapter/Pdo/Mysql.php dos2unix app/code/core/Mage/XmlConnect/Model/Observer.php dos2unix app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php dos2unix app/code/core/Mage/Core/Controller/Request/Http.php dos2unix app/code/core/Mage/Admin/Model/Observer.php

Y eso funcionó para mí. Leí algunas respuestas de desbordamiento de pila para encontrar esta solución. Parece que el comando ''parche'' es muy sensible a los finales de línea. Otra cosa que podría intentar es agregar el indicador -w al comando diff (otra vez editando el archivo .sh) que supuestamente hace que diff ignore el espacio en blanco al principio y al final de las líneas, pero no funcionó para mí. http://unixhelp.ed.ac.uk/CGI/man-cgi?diff

Como resultado final, me gustaría señalar que necesitaba agregar el comando de patch a Cygwin al volver a ejecutar el setup-x86.exe de instalación o actualización de Cygwin setup-x86.exe para agregar los paquetes de desarrollo que contienen el patch .


Mi solución también usa dos2unix , pero esto es lo que funcionó para mí:

paso 1

en la terminal de linux he corrido cat PATCH------something---.sh | grep "diff " cat PATCH------something---.sh | grep "diff " , que da como resultado todos los archivos involucrados en el parche.

consejo : si hay muchos archivos, agregue > diff_files.txt y descárguelos / acceda usando su navegador.

paso 2

copie el diff con las instrucciones de las rutas de archivos en el bloc de notas ++ (supongo que está usando Windows, es por eso que las terminaciones de línea suceden) .

Tendrás algo como esto:

diff --git app/code/core/Mage/Adminhtml/Helper/Sales.php app/code/core/Mage/Adminhtml/Helper/Sales.php diff --git app/code/core/Mage/Core/Model/Config.php app/code/core/Mage/Core/Model/Config.php diff --git lib/Varien/File/Uploader.php lib/Varien/File/Uploader.php

Como puede ver, la ruta del archivo está duplicada; no importa.

paso 3

Ahora simplemente reemplace diff --git con dos2unix , copie el resultado y el pasado en la terminal ssh , tenga en cuenta que debe estar en la carpeta raíz de Magento. Dos2unix llamará al mismo archivo dos veces, pero no hay problema.

dos2unix app/code/core/Mage/Adminhtml/Helper/Sales.php app/code/core/Mage/Adminhtml/Helper/Sales.php dos2unix app/code/core/Mage/Core/Model/Config.php app/code/core/Mage/Core/Model/Config.php dos2unix lib/Varien/File/Uploader.php lib/Varien/File/Uploader.php

consejo: tal vez la última línea necesite un retorno extra en la terminal.

Conclusión

de esta manera evitas ejecutar dos2unix en todos los archivos, lo que para mí parece más seguro. A continuación, llame a sh PATCH----something--.sh como las instrucciones de Magento.


Si el archivo que se está parcheando en Magento tiene terminaciones de línea diferentes que el archivo del parche, verá el error HUNK anterior.

Por ejemplo:

  • Archivo que está siendo parcheado: Windows Line endings
  • Archivo de parche: terminaciones de línea Unix

Si este es el caso, debe cambiar los finales de línea de cualquier archivo que NO coincida con el sistema en el que se está ejecutando.

es decir:

  • Si se ejecuta en Linux, asegúrese de que ambos tengan terminaciones de línea Unix.
  • Si se ejecuta en Windows, asegúrese de que ambos tengan terminaciones de línea en Windows.

Puedes hacerlo fácilmente en el editor Sublime: Ver> Acabados de línea> (elige el más adecuado)

Si está ejecutando Linux y su archivo está parcheado tiene terminaciones de línea de Windows (lo que hizo el mío por alguna razón y aparentemente no le importa a PHP), cambiar el archivo de parche para que también tenga terminaciones de línea de Windows resulta en este error críptico:

$ sh PATCH_SUPEE-2629_EE_1.12.0.0_v1.sh : command not found_1.12.0.0_v1.sh: line 7: ''ATCH_SUPEE-2629_EE_1.12.0.0_v1.sh: line 9: syntax error near unexpected token `{ ''ATCH_SUPEE-2629_EE_1.12.0.0_v1.sh: line 9: `_check_installed_tools() {

Consulte el parche de Magento que no se puede instalar para obtener más información.