패치 생성

외부 의존성을 매뉴얼으로 수정하여 다음을 수행할 수 있습니다.

  • Omnibus 임베디드 패키징과 함께 해당 의존성이 작동하는지 확인하십시오.
  • 상류 유지자가 수정하지 않은 문제를 해결하십시오.

부트스트랩 패치 파일

Omnibus에는 DSL 및 빌드 프로세스의 일부로 패치를 자동으로 적용 및 배송하는 규칙이 있습니다.

패치 파일을 적용하려면 변경 사항을 포함하는 .patch 파일을 특정 디렉터리 구조에 저장하고 patch DSL 메소드를 사용하십시오:

config/patches/<software-name>

예를 들어, gitlab-rails 실행 중에 적용된 패치의 경우 .patch 파일을 다음과 같이 저장하십시오:

config/patches/gitlab-rails

패치 만들기

패치 파일을 만들려면 다음을 사용할 수 있습니다.

  • diff 명령을 사용하여 원본 파일과 수정된 파일을 비교합니다.
  • Git을 사용하여 하나 이상의 커밋을 기반으로 패치를 출력합니다.

diff를 사용하여 패치 만들기

diff 명령을 사용하여 패치 파일을 만들려면 다음을 수행하십시오:

  1. 변경 중인 파일을 복제하여 새 파일 이름을 지정하십시오.
  2. 원본 파일을 변경하십시오.
diff -Naur <original_file> <new_file> > <patch_filename>.patch

Git을 사용하여 패치 만들기

git diff 명령을 사용하여 두 Git 커밋 사이의 패치 파일을 만듭니다. 두 커밋 ID를 알아야 합니다.

git diff <commitid1> <commitid2> > <patch_filename>.patch

또한 하나의 Git 커밋 및 기본 HEAD를 기반으로 패치 파일을 만들 수 있습니다.

git diff <commitid1> > <patch_filename>.patch

패치 사용

하나 이상의 파일에 패치를 적용하려면 다음을 수행하십시오:

  1. 다운로드하여 원본 파일을 가져오거나, 번들 설치하거나, 유사한 방법을 사용하여 원본 파일을 가져옵니다.
  2. 각 원본 파일에 다음 줄을 추가하십시오:

    patch source: '<patch_filename>.patch', target: "#{<install_directory>}/embedded/<target_file>.txt"