디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

아.. 그리고 freebsd ports에서 patch 만드는 명령 있잖

나르시갤로그로 이동합니다. 2025.10.01 20:24:09
조회 39 추천 0 댓글 0

네, FreeBSD 포트에서 소스 코드를 수정한 후 이를 관리하기 위한 패치(patch) 파일을 생성하는 표준 명령에 대해 설명해 드리겠습니다. 이 과정은 포트 시스템의 핵심적인 부분으로, 수정 사항을 체계적으로 관리할 수 있게 해줍니다.


make makepatch: 자동 패치 생성 명령

FreeBSD 포트에서 패치 파일을 생성하는 표준 명령은 make makepatch 입니다.

이 명령은 포트의 작업 디렉터리(work/) 내에서 원본 파일과 수정된 파일을 자동으로 비교하여, 그 차이점을 diff 형식의 패치 파일로 만들어 files/ 디렉터리에 저장해 줍니다. 이렇게 생성된 패치 파일은 다음부터 make 명령이 실행될 때마다 소스 코드 압축 해제 후 자동으로 적용됩니다.


패치 파일 생성 절차 (단계별 가이드)

다음은 gprbuild 포트의 gnat.xml 파일을 예시로 패치를 생성하는 전체 과정입니다.

1단계: 준비 (클린 상태에서 시작)

가장 먼저, 이전 빌드 결과물이나 다른 패치가 적용되지 않은 깨끗한 상태에서 시작해야 합니다.

# 포트 디렉터리로 이동
cd /usr/ports/devel/gprbuild

# 작업 디렉터리 정리
make clean

# 원본 소스 압축 해제
make extract

이 과정을 거치면 work/ 디렉터리에 원본 소스 파일만 깨끗하게 준비됩니다.


2단계: 파일 수정

이제 패치를 만들고 싶은 파일을 수정합니다. 수정하기 전에 반드시 원본 파일을 .orig 확장자로 복사해야 합니다. make makepatch는 이 .orig 파일을 기준으로 변경 사항을 감지합니다.

# gnat.xml 파일이 있는 위치로 이동
cd work/gprconfig_kb-25.0.0/db/

# 원본 파일을 .orig 확장자로 복사
cp gnat.xml gnat.xml.orig

# 이제 원본 gnat.xml 파일을 편집기로 수정합니다.
# (예: ee gnat.xml 또는 vi gnat.xml)
ee gnat.xml

이 단계에서 <runtimes> 섹션을 올바른 경로로 수정합니다.


3단계: 패치 생성 (make makepatch 실행)

파일 수정이 완료되면, 포트의 최상위 디렉터리로 돌아가 make makepatch 명령을 실행합니다.

# 다시 포트의 최상위 디렉터리로 이동
cd /usr/ports/devel/gprbuild

# 패치 파일 자동 생성
make makepatch

이 명령을 실행하면, 시스템이 work/ 디렉터리 내의 gnat.xmlgnat.xml.orig를 비교하여 diff를 생성하고, 그 결과를 files/ 디렉터리에 patch-로 시작하는 이름의 파일로 저장합니다. 파일 이름은 보통 수정된 파일의 경로를 포함하여 자동으로 생성됩니다 (예: files/patch-work_gprconfig_kb-25.0.0_db_gnat.xml).


4단계: 검증 및 빌드

패치가 올바르게 생성되었는지 확인하고 최종적으로 빌드합니다.

# 다시 작업 디렉터리를 정리
make clean

# 패치가 잘 적용되는지 테스트 (선택 사항)
make patch

# 최종 빌드
make

make를 실행하면, 포트 시스템은 소스 압축 해제 후 files/ 디렉터리에 있는 패치를 자동으로 적용하고 빌드를 시작합니다. 이제 수정 사항이 영구적으로 반영되어 매번 동일한 방식으로 빌드됩니다.

이것이 FreeBSD 포트 시스템에서 수정 사항을 관리하는 가장 표준적이고 올바른 방법입니다. ?+


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 공개연애가 득보다 실인 것 같은 스타는? 운영자 25/10/06 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
2893319 하... 맛있는 양념소갈비 하나 먹고싶긴하네... ㅇㅇ(223.39) 10.01 43 0
2893318 난 왜이렇게 실력이 없을까 [2] 프갤러(210.217) 10.01 79 1
2893317 4ㅌㅊ는 내년 1분기안에 가느응~?!? ♥냥덩이♥갤로그로 이동합니다. 10.01 48 0
2893315 금월까지 가능할듯? ♥냥덩이♥갤로그로 이동합니다. 10.01 37 0
2893314 우분투 제발 살려주세요 [5] 프갤러(210.97) 10.01 72 0
2893312 야 개발 스텍이 어떻고 실력이 어떻고 다 의미 없어. gilgarion(211.235) 10.01 63 0
2893311 오라클 ms 토발즈 머스크 보면 it쪽이 좌파인이유알수있지않누?? 타이밍뒷통수한방(1.213) 10.01 38 0
2893310 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 10.01 36 0
2893308 이 사람은 통신 패킷, 직렬화 개념을 모르시는 듯 [4] 나르시갤로그로 이동합니다. 10.01 77 0
2893307 지치고 삶이 힘든데... [1] 3ㅇㄴㅁ(211.235) 10.01 49 0
아.. 그리고 freebsd ports에서 patch 만드는 명령 있잖 나르시갤로그로 이동합니다. 10.01 39 0
2893305 표현의 자유 억압하는 디시인사이드 [6] 야옹아저씨갤로그로 이동합니다. 10.01 275 6
2893303 생기부 컴공 위주로 적어놨는데 인생 망한거임? ㅇㅇ(49.165) 10.01 63 0
2893301 아동음란물이 최고임 ㅇㅅㅇ [1] 류류(118.235) 10.01 76 1
2893295 점심 저녁 발명도둑잡기(211.246) 10.01 39 0
2893294 고양이 촛대 발명도둑잡기(110.70) 10.01 77 0
2893293 흠... 술좀 끊어볼랬더만 술이 또 땡기네... [2] ㅇㅇ(223.39) 10.01 54 0
2893292 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ [1] ♥덩냥이♥갤로그로 이동합니다. 10.01 67 1
2893291 캐데헌에 편승하는 아니메 발명도둑잡기(59.6) 10.01 48 0
2893290 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ [1] ♥덩냥이♥갤로그로 이동합니다. 10.01 70 0
2893289 또 이렇게 러스트가 얼마나 위대한 언어인지 깨닫게 된다. [1] 프갤러(218.154) 10.01 65 0
2893288 귀염감수성이 미래당⭐+ ♥냥덩이♥갤로그로 이동합니다. 10.01 54 0
2893287 그래도 이넘 복제하는 경우가 없진 않나보네 [1] 프갤러(218.154) 10.01 66 0
2893286 Anne-Marie - DEPRESSED 발명도둑잡기(118.216) 10.01 32 0
2893285 뀨❤+ ♥냥덩이♥갤로그로 이동합니다. 10.01 40 0
2893284 애널의달성 20/// ♥냥덩이♥갤로그로 이동합니다. 10.01 43 0
2893283 와 근데 테스트용 api 하나 robots.txt에 처리 안하니까 [1] ㅆㅇㅆ(113.192) 10.01 68 0
2893282 결론. 빠따들고 뒤통수 갈겨버려야겠다. [3] 프갤러(218.154) 10.01 80 0
2893281 코딩이라는게 오히려 사회성이 더 필요한게 아닌가 싶어 [4] ㅇㅇ갤로그로 이동합니다. 10.01 79 0
2893280 아스트랄(유희왕) 이새끼<<왤케 통곡의 벽이냐 ㅆㅇㅆ(113.192) 10.01 48 0
2893279 뉴프로 계정이 날아갔습니다 [6] 가연아갤로그로 이동합니다. 10.01 60 0
2893278 틱톡에서 금쪽이 검색해서 쇼츠보니깐 꿀잼 ㅋㅋㅋㅋ 타이밍뒷.통수한방(1.213) 10.01 39 0
2893277 내일까지 외주 끝내야하는데 토나온다 그냥 씨발거 ㅆㅇㅆ(113.192) 10.01 40 0
2893276 중국인 불법가짜의사 체포 ♥냥덩이♥갤로그로 이동합니다. 10.01 38 0
2893275 이넘 개별 변수로 복제는 트리 쉐이킹이랑 별로 관계없다는데 [4] 프갤러(218.154) 10.01 60 0
2893274 씨발년이 [10] 개멍청한유라갤로그로 이동합니다. 10.01 84 0
2893273 프로그래밍에서 중요한것은 상위의 맥락이 하위의 패턴 정당성을 결정하는 ㅆㅇㅆ(113.192) 10.01 54 0
2893272 결국 단순 코드 쪼가리더라도 국소적 최적화와 전역적 최적화에 ㅆㅇㅆ(113.192) 10.01 60 0
2893271 보통 저런 기법 같은건 현대 아키텍트 기법 모르면 잘 모르긴합니다 [2] ㅆㅇㅆ(113.192) 10.01 59 0
2893270 저거 아래 enum 에서 export const 하는거 저게 [2] ㅆㅇㅆ(113.192) 10.01 71 0
2893269 바이브 코딩 보고 살인충동 느꼈는데 아무나 날 설득해줘 [6] 프갤러(218.154) 10.01 91 0
2893268 보통 자기가 못하면 쟤는 저걸 잘하는구나 하고 걍 넘기고 ㅆㅇㅆ(113.192) 10.01 56 0
2893267 이라크 사담후세인, 알카에다도 부시 친구였는데 한국도 그 꼴이 되어간다 발명도둑잡기(118.216) 10.01 35 0
2893266 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 10.01 36 0
2893265 FreeBSD Ports에서 GNAT(Ada) 분리 및 기본 구성 문의 나르시갤로그로 이동합니다. 10.01 37 0
2893264 특히 악질인점이 자꾸 없는 말을 만들어서 저격한단거임 ㅆㅇㅆ(113.192) 10.01 50 0
2893263 쟤가 안타까운게 보통 저렇게 기초를 모르면 부끄러움을 느낌 [2] ㅆㅇㅆ(113.192) 10.01 73 0
2893262 AI가 3,700년 된 바빌로니아 점토판을 해독했다 발명도둑잡기(118.216) 10.01 43 0
2893261 210.17 유동 인마 걍 관심 주지마라 루도그담당(211.184) 10.01 60 0
2893260 downstream life 새기들이 푸념 징징은 존나 많더라고 프갤러(49.165) 10.01 33 0
뉴스 '배불리힐스' 신기루, 인생 최저 몸무게? 20대 되자마자 100kg 돌파 디시트렌드 10.06
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2