적용한 패치의 로그를 어떻게 얻나요?

적용한 패치의 로그를 어떻게 얻나요?

그래서 여기에 내 문제가 있습니다. 최근에 Linux 커널 패치 3.4.101을 다운로드하고 다음 명령을 사용하여 이 패치를 기본 3.4.0에 직접 적용했습니다.

$ cd /kernel source directory
$ gzip -cd ../path to patch/patch-3.4.101 | patch -p1

몇 가지 실패한 문제가 있었습니다... 하지만 패치가 너무 크기 때문에 모든 문제와 거부 사항을 분석할 수는 없습니다... 따라서 주요 질문은 다음과 같습니다.

이 패치 프로세스의 전체 로그를 얻으려면 어떻게 해야 합니까?

답변1

patch실패 하면 실패한 비트를 .rej파일에 저장합니다.

이미 실행했으므로 이러한 파일이 있을 것입니다. 를 사용하여 찾을 수 있습니다 find . -name \*.rej.

실제 로그를 얻으려면 patch호출기를 통해 출력과 오류를 전송해야 합니다. 예 less: gzip -dc patch.gz | patch -p1 2>&1 | less. 성공적으로 적용된 패치 부분에 대한 로그는 유지되지 않으므로 patch패치 실행 후 전체 로그를 얻을 수 있는 방법이 없습니다. patch물론 이 작업을 수행하려면 먼저 디렉터리를 정리해야 합니다. 두 번째로 실행하면 유용한 결과가 제공되지 않습니다.

의견에서 언급했듯이 이 특별한 경우에는 사실을 알 수 있습니다.어느거부는 매우 큰 문제이므로 충돌을 수동으로 해결하려고 해서는 안 됩니다. 기본 타르볼과 패치와 정확히 일치하는 버전을 얻어야 합니다. 귀하가 나열한 정확한 버전은 실행 시 오류가 표시되지 않습니다.

rm -rf linux-3.4
tar xzvf ~/Downloads/linux-3.4.tar.gz
cd linux-3.4
gzip -dc ~/Downloads/patch-3.4.101.gz | patch -p1 2>&1 | less -S

그러나 이것은 당신이 기대했던 패치 출력을 제공합니다.

관련 정보