게시물 1,376건
   
patch 옵션
글쓴이 : 최고관리자 날짜 : 2010-01-05 (화) 00:10 조회 : 11445
글주소 :
patch-man.pdf (66.2K), Down : 41, 2010-01-05 09:09:08
                                
-pNUM 옵션은 패치 파일에 명시되어 있는 '패치할 파일의 위치'를 제대로 찾아주게 하기위한, 'path에서 제거할 prefix의 개수'정도의 의미를 지닌다고 할 수 있습니다. --strip=NUM 과 같습니다.

-pnum  or  --strip=num

Strip  the  smallest prefix containing num leading slashes from each file name found in the patch file.  A sequence of one or more adjacent slashes is counted as a single slash.  This controls how file names found in the patch  file  are treated,  in  case  you keep your files in a different directory than the person who sent out the patch.  For example, supposing the file name in the patch file was



예를 들어, 패치 파일에 '패치할 파일의 위치(이름)'가 /home/dcpark/idst/src/test.c 와 같이 적혀 있을 경우.......
-p0 는 '하나도 수정하지 않은' 전 path가 포함된 것을,
-p1 은 '첫번째 슬래쉬가 빠진' home/dcpark/idst/src/test.c를,
-p4 는 '내번째 슬래쉬 앞까지 빠진' src/test.c를
'패치할 파일의 이름'으로 인식하게 합니다.
-p 옵션을 주지않는 다면, test.c 만 파일이름으로 간주하고 패치를 시도합니다.


보통의 경우, 소스 디렉토리 전체를 백업해두고
(cp -rf /home/dcpark/package /home/dcpark/package.orig)
소스(예: /home/dcpark/package/src/test.c)를 수정해서 패치파일을 만들기때문에
(diff -uNr package.orig package > patch.diff)...

패치할 소스 패키지의 루트디렉토리에서 -p1 을 사용하여 패치를 하는 것입니다.
(cd /home/dcpark/package/ && pach -p1 < where/patch.diff)


그리고 패치후에 나오는 메시지중에
: Hunk #1 succeeded at 1 with fuzz 2
: Hunk #2 failed at 353
: Hunk #3 failed at 374
: 2 out of 3 hunks failed

Hunk는 패치파일에 기록되어 있는 '패치할 조각(덩어리)'입니다.
보통 패치할 때, 위와 같은 메시지가 없어야 문제없이 정상적으로
처리가 된 것이지만, fuzz(퍼지, 껴맞추기)로 시도하여 성공하는
경우에는 위의 첫번째 메시지와 같은 것을 보여주게 됩니다.
위의 메시지에서 '두번째와 세번째 패치 조각'은 실패를 했네요. :)

자세한 것은 man patch 를 참고하세요.
patch man 페이지는 PDF 파일로 변환하여 첨부해두었습니다..

이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.