Oto podsumowanie tego, co do tej pory spotkałem (i innych), staram się to uporządkować, dodając lub łącząc wszystko, czego brakuje, post jest Wiki Społeczności:
Przyczyny nieudanej łatki
Jeśli zobaczysz komunikat „BŁĄD: poprawki nie można pomyślnie zastosować / przywrócić”, poszukaj „Hunk # 1 FAILED” w komunikatach dziennika, aby sprawdzić, w którym pliku błąd się nie powiódł.
- Najwyraźniej v2 łatki dla Magento 1.7 oczekuje, że pojawi się SUPEE-3941, chociaż istnieje tylko dla Magento 1.8 i 1.9 . Jeśli korzystasz z Magento 1.7 i widzisz błędy związane z plikami w
downloader
, pobierz SUPEE-3941 dla 1.8 i zastosuj go w 1.7, powinno działać. Zobacz temat komentarza tutaj: Problem z poprawką bezpieczeństwa SUPEE 8788
W wersjach Magento, w których wcześniej stosowano SUPEE-1533, poprawka kończy się niepowodzeniem, app/code/core/Mage/Adminhtml/controllers/DashboardController.php
ponieważ na plik mają wpływ zarówno łatki, jak i SUPEE-8788 (niepoprawnie!) Zakłada, że wersja niepakowana jest obecna. Jest to nadal prawdą w przypadku wersji 2 łatki! Wersja 2 zawiera zmiany w stosunku do SUPEE-1533, więc jeśli zainstalowałeś go wcześniej, nadal musisz go cofnąć, ale nie musisz go później ręcznie stosować ponownie.
Jeśli usunąłeś katalog „downloader” lub zmieniłeś jego nazwę, łata się nie powiedzie, ponieważ łata plik w downloaderze. Najłatwiejszym sposobem obejścia tego problemu jest przywrócenie oryginalnego katalogu downloadera, zastosowanie poprawki, a następnie usunięcie katalogu ponownie. Alternatywnie możesz również usunąć instrukcje dotyczące downloader/lib/Mage/HTTP/Client/Curl.php
łatki.
Inne komunikaty „Hunk FAILED” są zwykle spowodowane zmianami w podstawowych plikach lub brakiem poprzednich poprawek. Upewnij się, że wszystkie poprzednie łaty dla twojej wersji Magento są zainstalowane i że nie wprowadziłeś zmian w podstawowych plikach.
Innym częstym problemem jest to, że łatka nie usuwa .swf
plików z powodu ich zawartości binarnej. Błąd będzie wyglądał następująco:
checking file skin/adminhtml/default/default/media/uploaderSingle.swf
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
lub tak
Patching file skin/adminhtml/default/default/media/uploader.swf using Plan A...
No such line 2 in input file, ignoring
Empty context always matches.
Hunk #1 failed at 0.
1 out of 1 hunks failed while patching skin/adminhtml/default/default/media/uploader.swf
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
lub tak:
Checking if patch can be applied/reverted successfully...
/bin/patch: **** malformed patch at line 5790: ?rM]M??????&X㔮??v??Q;r?N?qJ??Y???I0?Y??4??'?????9?.??X?Ǒ?{??ax!G???I???q?u|????թ??????|
h??o?V@??|? ?g?H aꪭ??Ю???,I"?ğ????.?? yI?I\????)?X?
?p???*?e?q?K8<DqD?H;|?
ERROR: Patch can't be applied/reverted successfully.
Możliwe odpowiedzi są podane w tej odpowiedzi przez @infabo. Pobranie łaty bezpośrednio do systemu, w którym chcę ją zastosować, za pomocą curl, jak wyjaśniono w https://gist.github.com/piotrekkaminski/9bc45ec84028611d621e, zawsze działało dla mnie, z wyjątkiem przypadków, gdy wypróbowałem ją na Cygwin
Zaawansowany sposób radzenia sobie z nieudanymi łatkami: @PeterOCallaghan zasugerował skomentowanie suchej linii i ręczne radzenie sobie z plikami * .rej. W ten sposób łatkę można częściowo zastosować, a jeśli nie uda się usunąć plików SWF, można to zrobić ręcznie. Lub jeśli nie uda się zaktualizować plików, downloader
ponieważ usunąłeś ten katalog, możesz to zignorować.
vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh
(lub podobna nazwa pliku) zmienią _apply_revert_patch dry-run
wygląd
#_apply_revert_patch dry-run
uruchom łatkę, wydając ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh
Spowoduje to załatanie twoich plików
Komentarz _apply_revert_patch
do#_apply_revert_patch
uruchom łatkę ponownie, aby dodać app/etc/app/etc/applied.patches.list
pozycję
grep dla wszystkich plików .rej z
git status | grep *.rej
ręcznie pracować w tych zmianach
Problemy po zastosowaniu poprawki
Formularz klucze
W wersjach Magento wcześniejszych niż 1.8 wprowadzono zmiany w frontend/base/default
szablonach. Upewnij się, że ręcznie zastosujesz te same zmiany w kompozycji, jeśli zastąpi ona te pliki
Mówiąc dokładniej, dodano klucz formularza dla działań frontendowych, takich jak:
- Usuwanie elementu z listy życzeń
- Usuwanie adresu klienta z widoku sklepu
- Aktualizowanie wyceny w koszyku
Zobacz tę odpowiedź @LukeRogers, jeśli napotkasz problemy z tymi działaniami.
Niestandardowy program do przesyłania
Unirgy_Rapidflow i inne rozszerzenia z niestandardowymi formularzami przesyłania już nie działają.
Zobacz odpowiedź @mpchadwick i komentarz @lloiacono
Naprawiłem go zastępując $this->getUploader()->getConfig()
ze $this->getUploader()->getUploaderConfig()
wUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
Aby dowiedzieć się, czy którekolwiek z Twoich rozszerzeń tego używa, możesz uruchomić następujące polecenie w wierszu polecenia:
grep -R 'getUploader()->getConfig();' app/code/community
Zgłoszone komunikaty o błędach
Problemy rozwiązane w v2 łatki
Jeśli wystąpi którykolwiek z tych problemów, prawdopodobnie używasz wersji 1 poprawki („v1” w nazwie pliku). Pobierz łatkę ponownie, aby uzyskać „v2”, która rozwiązuje te problemy:
Wystąpił problem ze zgodnością z SUPEE-3941 i downloader/lib/Mage/HTTP/Client/Curl.php
„Wyjątek” z komunikatem „Nieobsługiwany typ danych N” w /lib/Unserialize/Reader/ArrValue.php
Łatka dla EE 1.14.2.0 przypadkowo zawierała nowy plik test_oauth.php, który należy usunąć! Zobacz tę odpowiedź autor: @MatthiasZeis