На странице загрузки Magento , в разделе патчей
Загрузите исправление в корневой каталог Magento и выполните соответствующую команду SSH: Для файлов исправлений с расширением файла `.sh: sh patch_file_name.sh Пример: sh PATCH_SUPEE-1868_CE_1.7.0.2_v1.sh
Magento рекомендует прямой вызов sh
команды для запуска их патча. Расширение файла также .sh
поддерживает это.
Однако, если вы посмотрите на верхнюю часть каждого файла патча , строка shebang указывает на bash
.
#!/bin/bash
# Patch apllying tool template
# v0.1.2
# (c) Copyright 2013. Magento Inc.
#
Программист во мне хочет доверять исходному файлу, но этот процесс хочет повиноваться тому, что написано на веб-сайте Magento, циник задается вопросом, тестировалось ли исправление на предмет различий между bash и sh .
REQUIRED_UTILS='sed patch'
все, что я вижу в.sh
сценариях. Документы по обновлению для последних версий читаются как стерео инструкции, и обновление не должно быть таким болезненным.Ответы:
Вы должны использовать Bash, на самом деле. В строке 14 патча, который вы явно указали, находится этот код:
$((
является допустимым арифметическим выражением в XCU sh, но((
это не так.)Однако на многих UNIX-подобных платформах
/bin/sh
это просто символическая ссылка на/bin/bash
. Когда вызывается с именемsh
, bash отключает некоторые из его POSIXly-нестрогих поведения, но не все. Вполне вероятно, что эти патчи будут хорошо работать для bash, вызываемого как sh.источник
chmod +x script && ./script
ядро попытается выполнить команду в строке shebang с файлом сценария в качестве первого или второго аргумента. В зависимости от обстоятельств, нет никакой гарантии, что какая-либо оболочка будет включена в это дерево процессов. Однако, если вы выполняетеsh
сценарий в качестве аргумента, строка shebang будет игнорироваться.В случае, если это поможет кому-то в будущем, я использовал Phpstorm для применения патча, и его инструмент патча отлично работает. Для применения патча потребовалось менее 30 секунд без каких-либо проблем, и вы также можете увидеть и просмотреть различия между файлами.
источник