Application des correctifs Magento CE


15

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 shcommande pour exécuter leur correctif. L'extension de fichier de .shprend é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 .


Le processus de correction doit être aussi simple que des fichiers .diff zippés. REQUIRED_UTILS='sed patch'tout ce que je vois dans les .shscripts. 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.
B00MER

2
Je récupère un peu aveuglément le patch, chmod + x et le lance. (Eh bien, je vérifie d'abord le contenu) mais je l'exécute localement (développement basé sur Mac) afin que je puisse git branche et valider sur une branche de test avant le déploiement.
Barry Carlyon

3
@ B00MER C'est délicat. Je suis personnellement d'accord, mais pour les connaisseurs de la technologie mais pas les gens avertis d'Unix, l'application manuelle de correctifs semble être un pas trop loin. Je peux comprendre les motivations derrière un installateur de correctifs.
Alan Storm

Je repense à ça. Le lins de shebang pourrait être #! / Bin / php par exemple et, sh exécute "assez" pour lire la ligne de shebang et passer le script au programme shebang'ed. En ce qui concerne l'application manuelle, le patch contient quand même les Git Diffs, vous pouvez donc vous appliquer "facilement". Mais, existe-t-il un argument pour demander à Magento de fournir un zip avec les fichiers modifiés uniquement, à côté d'un correctif (ce qui est bien, sauf pour les modifications de base)?
Barry Carlyon,

Encore une chose. L'utilisation d'une extension de fichier, autre que .txt, le rend probablement plus logique pour les moins avertis, pour éviter d'avoir des fichiers sans extension flottant sur le système de fichiers des utilisateurs locaux. Je pense que bash et sh sont de toute façon interchangeables.
Barry Carlyon

Réponses:


8

Vous devez utiliser bash, en fait. À la ligne 14 du correctif que vous avez explicitement signalé se trouve ce code:

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

$((est une expression arithmétique valide dans XCU sh, mais ((ne l'est pas.)

Sur de nombreuses plates-formes de type UNIX, cependant, /bin/shn'est qu'un lien symbolique vers /bin/bash. Lorsqu'il est appelé avec le nom sh, 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.


Dans ce cas, le script ne s'exécute pas sous sh, sh se décharge-t-il sur le programme de ligne Shebang déclaré?
Barry Carlyon

En fait, le noyau est responsable de l'interprétation du shebang. Si vous chmod +x script && ./scriptle 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écutez shavec un script comme argument, cependant, la ligne shebang sera ignorée.
kojiro

Cela signifie donc que je suis mal en train de suivre les instructions du patch. Comme on dit, faites le script sh mais je le fais juste ./script Comme c'est amusant
Barry Carlyon

-2

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.