Domanda

Per la Magento pagina di download , nella sezione patch

Si prega di caricare la patch nella directory principale Magento ed eseguire il comando appropriato SSH: Per i file di patch con l'estensione del file `.sh: patch_file_name.sh sh Esempio: sh PATCH_SUPEE-1868_CE_1.7.0.2_v1.sh

Magento raccomanda un'invocazione diretta del comando sh per eseguire il loro corridore patch. L'estensione del file di .sh sostiene questo pure.

Tuttavia, se si sguardo in alto ogni file di patch corridore, i punti di linea shebang a bash.

#!/bin/bash
# Patch apllying tool template
# v0.1.2
# (c) Copyright 2013. Magento Inc.
#

Il programmatore in me vuole fidarsi del file sorgente, ma il secchione processo vuole obbedire a ciò che è scritto sul sito di Magento, le meraviglie cinico se la patch è stata testata contro le differenze tra bash e sh .

È stato utile?

Soluzione

È necessario utilizzare bash, in realtà. On line 14 della patch lei ha esplicitamente è questo codice:

if (( $? != 0 )); then

$(( è una valida href="http://pubs.opengroup.org/onlinepubs/009604599/utilities/xcu_chap02.html#tag_02_06_04"> espressione aritmetica in XCU sh, ma (( non è. )

Su molte piattaforme UNIX-like, tuttavia, /bin/sh è solo un link simbolico a /bin/bash. Quando viene invocato con il nome sh, bash fa disable alcuni del suo comportamento POSIXly-unstrict, ma non tutto. E 'probabile che queste patch avrebbe funzionato bene per bash invocato come sh.

Altri suggerimenti

In caso aiuta qualcuno in futuro, ho usato PhpStorm per applicare la patch e il suo strumento di patch è grande. Ci sono voluti meno di 30 secondi per applicare la patch senza problemi e si può anche vedere e passare attraverso le differenze dei file hanno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top