Auf der Magento- Download-Seite im Patches-Bereich
Laden Sie den Patch in Ihr Magento-Stammverzeichnis hoch und führen Sie den entsprechenden SSH-Befehl aus: Für Patch-Dateien mit der Dateierweiterung `.sh: sh patch_file_name.sh Beispiel: sh PATCH_SUPEE-1868_CE_1.7.0.2_v1.sh
Magento empfiehlt einen direkten Aufruf des sh
Befehls, um den Patch-Runner auszuführen. Die Dateierweiterung von .sh
unterstützt dies ebenfalls.
Wenn Sie sich jedoch die Spitze jeder Patch-Runner-Datei ansehen , zeigt die Shebang-Linie auf bash
.
#!/bin/bash
# Patch apllying tool template
# v0.1.2
# (c) Copyright 2013. Magento Inc.
#
Der Programmierer in mir möchte der Quelldatei vertrauen, aber der Prozess will wissen, was auf der Magento-Website steht. Der Zyniker fragt sich, ob der Patch gegen die Unterschiede zwischen bash und sh getestet wurde .
REQUIRED_UTILS='sed patch'
Alles was ich in den.sh
Skripten sehe . Die Aktualisierungsdokumente für neuere Versionen lesen sich wie Stereoanweisungen, und die Aktualisierung sollte nicht so schmerzhaft sein.Antworten:
Sie müssen tatsächlich bash verwenden. In Zeile 14 des Patches, auf den Sie ausdrücklich hingewiesen haben, steht dieser Code:
$((
ist ein gültiger arithmetischer Ausdruck in XCU sh, aber((
nicht.)Auf vielen UNIX-ähnlichen Plattformen ist dies jedoch
/bin/sh
nur ein Symlink zu/bin/bash
. Wennsh
bash mit dem Namen aufgerufen wird , deaktiviert es einige seiner POSIXly-unstrict-Verhalten, aber nicht alle. Es ist wahrscheinlich, dass diese Patches für die als sh aufgerufene Bash gut funktionieren.quelle
chmod +x script && ./script
versuchen, den Befehl in der shebang-Zeile mit der Skriptdatei als erstem oder zweitem Argument auszuführen, versucht der Kernel. Abhängig von den Umständen kann nicht garantiert werden, dass eine Shell an diesem Prozessbaum beteiligt ist. Wenn Sie jedochsh
mit einem Skript als Argument ausführen , wird die shebang-Zeile ignoriert.Für den Fall, dass es jemandem in Zukunft hilft, habe ich Phpstorm zum Anwenden von Patches verwendet und das Patch-Tool ist großartig. Es dauerte weniger als 30 Sekunden, um den Patch ohne Probleme anzuwenden, und Sie können auch die Unterschiede sehen und durchgehen, die die Dateien aufweisen.
quelle