OnWorks Linux 및 Windows 온라인 워크스테이션

심벌 마크

워크스테이션용 무료 온라인 호스팅

<이전 | 내용 | 다음>

패치 적용‌


사용 사례 중 하나에서는 다음을 다운로드했습니다. 파이릿 소스 패키지를 사용하고 업스트림 git 저장소에서 찾은 패치를 적용하려고 합니다. 이는 일반적인 작업이므로 항상 간단해야 합니다. 불행하게도 패치는 소스 패키지 형식과 사용 중인 Git 패키징 워크플로(Git를 사용하여 패키지를 유지 관리하는 경우)에 따라 다양한 방식으로 처리될 수 있습니다.


압축이 풀린 소스 패키지 사용 당신은 달렸다 적절한 소스 피릿 그리고 당신은 피리트-0.

4.0 디렉토리. patch -p1을 사용하여 패치를 직접 적용할 수 있습니다. 패치 파일:


$ 적절한 소스 피릿

[...]

$ CD pyrit-0.4.0

$ wget https://github.com/JPaulMora/Pyrit/commit/14

ec997174b8e8fd20d22b6a97c57e19633f12a0.patch -O /tmp/pyrit-patch

[...]

$ 패치 -p1

패치 파일 cpyrit/pckttools.py

$ 적절한 소스 피릿

[...]

$ CD pyrit-0.4.0

$ wget https://github.com/JPaulMora/Pyrit/commit/14

ec997174b8e8fd20d22b6a97c57e19633f12a0.patch -O /tmp/pyrit-patch

[...]

$ 패치 -p1

패치 파일 cpyrit/pckttools.py


Hunk #1은 53(오프셋 -1 라인)에서 성공했습니다.

$ dch --local buxy "scapy 2.3과 함께 작동하려면 패치 적용"

Hunk #1은 53(오프셋 -1 라인)에서 성공했습니다.

$ dch --local buxy "scapy 2.3과 함께 작동하려면 패치 적용"


이 시점에서 소스 코드를 수동으로 패치했으며 이미 수정된 버전의 바이너리 패키지를 빌드할 수 있습니다(섹션 참조). 9.1.4, “시작합니다. 짓다" [페이지 231]). 그러나 업데이트된 소스 패키지를 빌드하려고 하면 "예기치 않은 업스트림 변경"에 대해 불평하며 실패합니다. 이는 pyrit(대부분의 소스 패키지와 마찬가지로)이 소스 형식을 사용하기 때문입니다(참조: 데비안/소스/형식 파일) 3.0(quilt)으로 알려져 있으며 업스트림 코드에 대한 변경 사항은 다음 파일에 저장된 별도의 패치에 기록되어야 합니다. 데비안/패치/ 그리고 어디 데비안/패치/시리즈 파일은 패치를 적용해야 하는 순서를 나타냅니다. 다음을 실행하여 새 패치에 변경 사항을 등록할 수 있습니다. dpkg-소스 --커밋:


$ dpkg-소스 --커밋

dpkg-source: 정보: 로컬 변경 사항이 감지되었으며 수정된 파일은 다음과 같습니다: pyrit-0.4.0/cpyrit/pckttools.py

원하는 패치 이름을 입력하세요: fix-for-scapy-2.3.patch

dpkg-source: 정보: 로컬 변경 사항이 새 패치 pyrit-0.4.0/debian/에 기록되었습니다.

패치/fix-for-scapy-2.3.patch

$ tail -n 1 데비안/패치/시리즈

fix-for-scapy-2.3.patch

$ dpkg-소스 --커밋

dpkg-source: 정보: 로컬 변경 사항이 감지되었으며 수정된 파일은 다음과 같습니다: pyrit-0.4.0/cpyrit/pckttools.py

원하는 패치 이름을 입력하세요: fix-for-scapy-2.3.patch

dpkg-source: 정보: 로컬 변경 사항이 새 패치 pyrit-0.4.0/debian/에 기록되었습니다.

패치/fix-for-scapy-2.3.patch

$ tail -n 1 데비안/패치/시리즈

fix-for-scapy-2.3.patch


퀼트 패치 시리즈 이 패치 관리 규칙은 다음과 같은 도구에 의해 대중화되었습니다. 이불 따라서 "3.0(퀼트)" 소스 패키지 형식은 이 도구와 호환되며 사용되는 작은 편차가 있습니다. 데비안/패치 대신 패치. 이 도구는 같은 이름의 패키지로 제공되며 여기에서 유용한 튜토리얼을 찾을 수 있습니다.

https://raphaelhertzog.com/2012/08/08/

사용 방법-퀼트-관리-패치-인-데비안-패키지/

퀼트 패치 시리즈 이 패치 관리 규칙은 다음과 같은 도구에 의해 대중화되었습니다. 이불 따라서 "3.0(퀼트)" 소스 패키지 형식은 이 도구와 호환되며 사용되는 작은 편차가 있습니다. 데비안/패치 대신 패치. 이 도구는 같은 이름의 패키지로 제공되며 여기에서 유용한 튜토리얼을 찾을 수 있습니다.

https://raphaelhertzog.com/2012/08/08/

사용 방법-퀼트-관리-패치-인-데비안-패키지/


소스 패키지가 1.0 또는 3.0(기본) 소스 형식을 사용하는 경우 업스트림 변경 사항을 패치에 등록할 필요가 없습니다. 결과 소스 패키지에 자동으로 번들됩니다.


Git 저장소 사용 Git을 사용하여 소스 패키지를 검색한 경우 상황은 훨씬 더 복잡합니다. 여러 Git 작업 흐름과 관련 도구가 있으며 모든 데비안 패키지가 동일한 작업 흐름과 도구를 사용하는 것은 아닙니다. 소스 형식에 대해 이미 설명한 차이점은 여전히 ​​관련이 있지만 패치가 소스 트리에 미리 적용되어 있는지 아니면 소스 트리에만 저장되어 있는지도 확인해야 합니다. 데비안/패치 (이 경우에는 빌드 시 적용됩니다.)

가장 인기 있는 도구는 자식 빌드 패키지. git-lab.com/kalilinux/packages의 모든 리포지토리를 관리하는 데 사용하는 것입니다. 사용시 패치는 소스트리에 미리 적용되지 않고, 소스트리에 저장됩니다. 데비안/패치. 해당 디렉토리에 패치를 수동으로 추가하고 나열할 수 있습니다.

in 데비안/패치/시리즈 하지만 git-buildpackage 사용자는 다음을 사용하는 경향이 있습니다. GBP PQ 전체 패치 시리즈를 원하는 대로 확장하거나 리베이스할 수 있는 단일 분기로 편집합니다. 확인하다 GBP-PQ(1) 호출하는 방법을 알아보세요.

git-dpm (동일한 이름의 관련 명령 포함)은 사용 중에 찾을 수 있는 또 다른 git 패키징 도구입니다. 메타데이터를 기록합니다. 데비안/.git-dpm 그리고 지속적으로 리베이스되는 브랜치를 병합하여 소스 트리에 적용된 패치를 유지합니다. 데비안/패치.


OnWorks의 최고 OS 클라우드 컴퓨팅: