마 젠토 CE 패치 적용


15

패치 섹션 아래 의 Magento 다운로드 페이지

패치를 Magento 루트 디렉토리에 업로드하고 적절한 SSH 명령을 실행하십시오. 파일 확장자가`.sh 인 패치 파일의 경우 : sh patch_file_name.sh 예 : sh PATCH_SUPEE-1868_CE_1.7.0.2_v1.sh

Magento sh는 패치 러너를 실행하기 위해 명령을 직접 호출 할 것을 권장합니다 . 의 파일 확장자도이를 .sh지원합니다.

그러나 각 패치 러너 파일의 상단보면 shebang 행이을 가리 킵니다 bash.

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

내 프로그래머는 소스 파일을 신뢰하고 싶지만 프로세스는 Magento 웹 사이트에 작성된 내용을 따르고 싶어합니다. cynic은 패치가 bash와 sh의 차이점 에 대해 테스트되었는지 궁금합니다 .


패치 프로세스는 압축 된 .diff 파일처럼 간단해야합니다. 스크립트 REQUIRED_UTILS='sed patch'에서 모두 볼 .sh수 있습니다. 최신 버전의 업그레이드 문서는 스테레오 명령어와 같이 읽히므로 업그레이드가 그렇게 힘들지는 않습니다.
B00MER

2
나는 맹목적으로 패치 chmod + x를 가져 와서 실행합니다. (먼저 내용을 확인하십시오)하지만 로컬로 실행하여 (Mac 기반 dev) 배포하기 전에 분기를 git하고 테스트 분기에 커밋 할 수 있습니다.
Barry Carlyon

3
@ B00MER 까다 롭습니다. 나는 개인적으로 동의하지만 기술에 정통하지만 유닉스에 정통하지 않은 사람들에게는 수동으로 패치를 적용하는 것이 너무 한 단계처럼 보입니다. 패치 설치 관리자의 동기를 이해할 수 있습니다.
Alan Storm

다시 생각 해봐 예를 들어 shebang lins는 #! / bin / php 일 수 있으며 sh는 "충분히"실행하여 shebang 행을 읽고 스크립트를 shebang의 프로그램에 전달합니다. 수동으로 적용 할 때는 패치에 Git Diff가 포함되어 있으므로 "쉽게"적용 할 수 있습니다. 그러나 Magento에 패치와 함께 변경된 파일 만있는 zip을 제공하도록 요청하는 주장이 있습니까 (Core 편집을 제외하고는 괜찮습니다)?
Barry Carlyon

하나 더. .txt 이외의 파일 확장자를 사용하면 로컬 사용자 파일 시스템에 대해 확장자가없는 파일이 떠 다니는 것을 피하기 위해 덜 익숙한 사람에게 더 논리적입니다. 나는 bash와 sh가 어쨌든 상호 교환 가능하다고 느낀다.
Barry Carlyon

답변:


8

실제로 bash를 사용해야합니다. 패치의 14 행에서 명시 적으로 지적한 코드는 다음과 같습니다.

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

$((A는 유효한 연산 식 XCU 쉬에서,하지만 ((아니다.)

그러나 많은 유닉스 계열 플랫폼에서는 /bin/sh단지 심볼릭 링크 /bin/bash입니다. 이름으로 호출하면 shbash는 POSIXly-unstrict 동작 중 일부 를 비활성화 하지만 전부는 아닙니다. 이 패치는 sh로 호출 된 bash에서 잘 작동 할 것입니다.


이 경우에는 스크립트가 sh에서 실행되지 않고 sh가 명시된 shebang 라인 프로그램으로 덤프됩니까?
Barry Carlyon

실제로 커널은 shebang을 해석 할 책임이 있습니다. 당신이 경우 chmod +x script && ./script커널은 첫 번째 또는 두 번째 인수로 스크립트 파일이있는 오두막 줄에 명령을 실행하려고합니다. 상황에 따라 해당 프로세스 트리에 쉘이 포함되어 있다고 보장 할 수 없습니다. 를 실행하면 sh인수로 스크립트를하지만, 오두막 라인은 무시됩니다.
kojiro

따라서 패치 지침을 잘못 따르고 있음을 의미합니다. 그들이 스크립트를 말하지만 난 그냥 ./script 어떻게 재미있는
배리 Carlyon

-2

나중에 누군가를 도울 수 있도록 Phpstorm을 사용하여 패치를 적용했으며 패치 도구가 훌륭합니다. 문제없이 패치를 적용하는 데 30 초도 걸리지 않았으며 파일의 차이점을 확인하고 통과 할 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.