Par la page de téléchargement de Magento , dans la section des correctifs
Veuillez télécharger le correctif dans votre répertoire racine Magento et exécutez la commande SSH appropriée: Pour les fichiers de correctif avec l'extension de fichier `.sh: sh nom_fichier_chemin.sh Exemple: sh PATCH_SUPEE-1868_CE_1.7.0.2_v1.sh
Magento recommande une invocation directe de la sh
commande pour exécuter leur correctif. L'extension de fichier de .sh
prend également en charge cela.
Cependant, si vous regardez en haut de chaque fichier de correctif , la ligne shebang pointe vers bash
.
#!/bin/bash
# Patch apllying tool template
# v0.1.2
# (c) Copyright 2013. Magento Inc.
#
Le programmeur en moi veut faire confiance au fichier source, mais le processus wonk veut obéir à ce qui est écrit sur le site Web de Magento, le cynique se demande si le patch a été testé par rapport aux différences entre bash et sh .
REQUIRED_UTILS='sed patch'
tout ce que je vois dans les.sh
scripts. Les documents de mise à niveau pour les versions récentes se lisent comme des instructions stéréo, et la mise à niveau ne devrait pas être si douloureuse.Réponses:
Vous devez utiliser bash, en fait. À la ligne 14 du correctif que vous avez explicitement signalé se trouve ce code:
$((
est une expression arithmétique valide dans XCU sh, mais((
ne l'est pas.)Sur de nombreuses plates-formes de type UNIX, cependant,
/bin/sh
n'est qu'un lien symbolique vers/bin/bash
. Lorsqu'il est appelé avec le nomsh
, bash désactive une partie de son comportement POSIXly-unstrict, mais pas la totalité. Il est probable que ces correctifs fonctionnent correctement pour bash appelé sh.la source
chmod +x script && ./script
le noyau tente d'exécuter la commande dans la ligne shebang avec le fichier de script comme premier ou deuxième argument. Selon les circonstances, rien ne garantit qu'un shell soit impliqué dans cet arbre de processus. Si vous exécutezsh
avec un script comme argument, cependant, la ligne shebang sera ignorée.Au cas où cela aiderait quelqu'un à l'avenir, j'ai utilisé Phpstorm pour appliquer le patch et son outil de patch est génial. Il a fallu moins de 30 secondes pour appliquer le correctif sans aucun problème et vous pouvez également voir et parcourir les différences des fichiers.
la source