Fehler beim Patchen von Magento 1.7.1 Hunk # 1 fehlgeschlagen bei

8

Ich sehe die letzte Critical Reminder Benachrichtigung in meinem Magento Dashboard v.1.7.0.2 (2 important security patches (SUPEE-5344 and SUPEE-1533)...)

Also, ich lade sie in anderen Magento's korrekt herunter und installiere sie korrekt (z. B. 1.6.0 , 1.6.1 ), aber ich bekomme diese Fehler in dieser Version 1.7.0.2

%Vor%

Ich habe gesucht und ich fand diesen Magento-Patch, der den Post nicht installiert , aber es funktionierte nicht für mich

Ich downloade auf Windows, Mac und Linux die .sh Datei, und der resault ist der selbe ... Einige Ideen?

    
Di36o 17.04.2015, 15:27
quelle

3 Antworten

4

Ich verwende Windows auf meinem lokalen Rechner. Der Server ist natürlich Linux. Und ich benutze Git für die Versionskontrolle.

Lange Redewendung: Versuchen Sie, dos2unix zu verwenden, um zu versuchen, die Zeilenenden Ihrer .php-Dateien mit der .sh-Patch-Datei abzugleichen. (Ich denke, Sie können dos2unix auch auf der .sh-Datei oder unix2dos auf der .sh-Datei ausführen - eine Kombination, um sie beide gleich zu machen).

Obwohl ich denke, dass Ihre Fehlermeldungen ein wenig anders aussehen. Hast du wirklich in der 'Datei ablehnen' nachgesehen? Wenn es sich nicht um einen Zeilenende-Glitch handelt, können Sie sich etwas zwischen den Installationen von Version 1.6 und 1.7 vorstellen? (Ich habe 1.7.0.2 und 1.9.0.1 mit der hier beschriebenen Methode gepatcht). Wenn Sie die Graph.php-Datei überprüfen, gibt es dort Änderungen?

Hier ist mehr, was für mich funktionierte:

Ich habe Cygwin benutzt (Gitbash hatte Probleme mit Linux- und Windows-Dateipfaden und gab den Fehler /app/etc must exist ). Außerdem musste ich Cygwin als Administrator ausführen, um einen Dateiberechtigungsfehler zu umgehen (was seltsam und wahrscheinlich einzigartig für meine Einrichtung ist).

Aber das Wichtigste, was ich tun musste, war dos2unix für die Dateien auszuführen, die der Patch versucht, diff . Ich habe dies durch Bearbeiten der .sh-Patch-Dateien, die Sie gegen Ende der Datei sehen können, hat die Pfade zu den Dateien, die geändert werden.

Also habe ich die .sh-Datei bearbeitet, indem ich diese beiden Zeilen in Zeile 66 vor dem Kommentar # 5. File pathes : -

hinzugefügt habe %Vor%

Vielleicht möchten Sie einen Plan B in Betracht ziehen und die Dateien manuell bearbeiten; Es gibt nicht so viele Änderungen.

Patch 5344 hat allerdings noch ein paar Änderungen. Für diesen habe ich diese Zeilen vor dem Kommentar # 5. File pathes in der Datei PATCH_SUPEE-5345_CE_1.7.0.2_v1-2015-02-10-08-11-22.sh : -

hinzugefügt %Vor%

Und das hat für mich funktioniert. Ich lese ein paar Stack Overflow-Antworten, um diese Lösung zu finden. Es scheint, dass der 'Patch'-Befehl sehr empfindlich auf Zeilenendungen reagiert. Eine andere Sache, die Sie versuchen könnten, ist das Hinzufügen des -w-Flags in den diff-Befehl (wiederum durch Bearbeiten der .sh-Datei), was diff differiert, Leerraum am Anfang und Ende von Zeilen zu ignorieren, aber es hat nicht für mich funktioniert. Ссылка

Als abschließendes Problem habe ich bemerkt, dass ich Cygwin den patch -Befehl hinzufügen musste, indem ich das Cygwin setup-x86.exe 'install oder update' Programm erneut ausführen ließ, um es in den Entwickler-Paketen hinzuzufügen, die patch enthielten / p>     

Malachy 18.04.2015, 18:07
quelle
2

Wenn die Datei, die in Magento gepatcht wird, andere Zeilenenden hat als die Patch-Datei selbst, wird der obige HUNK-Fehler angezeigt.

Zum Beispiel:

  • Datei wird gepatcht: Windows Zeilenendungen
  • Patch-Datei: Unix-Zeilenendungen

Wenn dies der Fall ist, müssen Sie die Zeilenenden der Datei ändern, die NICHT mit dem System übereinstimmt, auf dem sie ausgeführt wird.

ie:

  • Wenn Sie unter Linux arbeiten, stellen Sie sicher, dass beide Unix-Zeilenenden haben.
  • Wenn Sie unter Windows arbeiten, stellen Sie sicher, dass beide Windows-Zeilenenden haben.

Sie können dies einfach im Sublime-Editor tun: View & gt; Linienendungen & gt; (Wählen Sie die richtige)

Wenn Sie unter Linux laufen und Ihre zu patchende Datei Windows-Zeilenenden hat (was meiner aus irgendeinem Grund tat und anscheinend macht es PHP nichts aus), führt das Ändern der Patch-Datei mit Windows-Zeilenenden zu diesem kryptischen Fehler :

%Vor%

Siehe Magento-Patch kann nicht installiert werden für weitere Details

    
Daniel Flippance 26.04.2015 05:14
quelle
1

Meine Lösung verwendet auch dos2unix , aber das hat bei mir funktioniert:

Schritt 1

im Linux-Terminal Ich habe cat PATCH------something---.sh | grep "diff " ausgeführt, was zu allen am Patch beteiligten Dateien führt.

Tipp : Wenn viele Dateien vorhanden sind, fügen Sie > diff_files.txt hinzu und laden Sie mit Ihrem Browser herunter / greifen Sie darauf zu.

Schritt 2

Kopieren Sie die Anweisungen diff mit Dateipfaden nach notepad ++ (Ich gehe davon aus, dass Sie Windows verwenden, deshalb passiert die Zeilenendung) .

Sie werden so etwas haben:

diff --git app/code/core/Mage/Adminhtml/Helper/Sales.php app/code/core/Mage/Adminhtml/Helper/Sales.php diff --git app/code/core/Mage/Core/Model/Config.php app/code/core/Mage/Core/Model/Config.php diff --git lib/Varien/File/Uploader.php lib/Varien/File/Uploader.php

Wie Sie sehen können, ist der Dateipfad dupliziert. vergiss es.

Schritt 3

Ersetzen Sie einfach diff --git durch dos2unix , kopieren Sie das Ergebnis und die Vergangenheit in das ssh -Terminal. Denken Sie daran, dass Sie sich im Magento-Stammordner befinden müssen. Die dos2unix ruft dieselbe Datei zweimal auf, aber es gibt kein Problem.

dos2unix app/code/core/Mage/Adminhtml/Helper/Sales.php app/code/core/Mage/Adminhtml/Helper/Sales.php dos2unix app/code/core/Mage/Core/Model/Config.php app/code/core/Mage/Core/Model/Config.php dos2unix lib/Varien/File/Uploader.php lib/Varien/File/Uploader.php

Tipp: Vielleicht benötigt die letzte Zeile eine extra return im Terminal.

Fazit

Auf diese Weise vermeiden Sie, dos2unix in allen Dateien auszuführen, was für mich sicherer erscheint. Rufen Sie als Nächstes sh PATCH----something--.sh wie Magento-Anweisungen auf.

    
WilliamK 05.05.2016 13:50
quelle

Tags und Links