При загрузке и запуске патча для поддержки Magento PHP 5.4 (Magento-CE-v1.7.0.0-1.7.0.2) с http://www.magentocommerce.com/download выполняется сценарий с использованием sh PATCH_SUPEE-2629_EE_1.12.0.0_v1.sh
мы получаем эту ошибку:
$ 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() {
Как ни странно, строка 7 сценария пустая (вот глава файла):
#!/bin/bash # Patch apllying tool template # v0.1.2 # (c) Copyright 2013. Magento Inc. # # DO NOT CHANGE ANY LINE IN THIS FILE. # 1. Check required system tools _check_installed_tools() { local missed=""
Мы попробовали загрузку в Windows и Mac, в Firefox и Chrome, чтобы исключить любые проблемы с кодированием, вызванные процессом загрузки. Патч, кажется, очень новый – Added Jan 17, 2014
Мы запускаем Magento Community Edition 1.7.0.2
редактировать
Мы попытались запустить файл .sh с bash
но получим тот же ответ.
Интересно отметить, что при нажатии «загрузить» Magento показывает источник .sh в браузере, поэтому мы попробовали различные комбинации источника просмотра, затем сохранили; копирование текста из окна браузера и сохранение его в текстовый файл. Ни одна из этих проблем не решила проблему, хотя одна из них изменила сообщение об ошибке:
$ sh PATCH_SUPEE-2629_EE_1.12.0.0_v1.sh Checking if patch can be applied/reverted successfully... /usr/bin/patch: **** malformed patch at line 238: ERROR: Patch can't be applied/reverted successfully.
Строка 238 – это пустая строка комментариев:
+/** + * Abstract helper class for {@link Zend_Pdf_FileParser} that provides the + * data source for parsing. + * + * Concrete subclasses allow for parsing of in-memory, filesystem, and other + * sources through a common API. These subclasses also take care of error + * handling and other mundane tasks.
Мы также попробовали упомянутый здесь шаг VI -: set ff unix http://www.magentocommerce.com/boards/viewthread/864518
Затем ошибка изменилась на:
$ sh PATCH_SUPEE-2629_EE_1.12.0.0_v1.sh Checking if patch can be applied/reverted successfully... ERROR: Patch can't be applied/reverted successfully. patching file app/code/core/Mage/Catalog/Model/Product.php Hunk #1 FAILED at 1936. 1 out of 1 hunk FAILED -- saving rejects to file app/code/core/Mage/Catalog/Model/Product.php.rej patching file app/code/core/Mage/Core/Controller/Varien/Router/Standard.php Hunk #1 FAILED at 43. 1 out of 1 hunk FAILED -- saving rejects to file app/code/core/Mage/Core/Controller/Varien/Router/Standard.php.rej patching file app/code/core/Mage/Install/etc/config.xml patching file app/code/core/Zend/Pdf/FileParserDataSource.php
Оказывается, эта ошибка возникает, когда файл патча (а не патч ) имеет окончания строки, которые не соответствуют системе, в которой он выполняется.
например: вы увидите эту ошибку, если:
Я изменил файл исправления, чтобы иметь окончание строк Unix, используя Sublime:
View > Line Endings > Unix
См. Также Ошибка исправления Magento 1.7.1 Hunk # 1 Ошибка при