디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.10.01 20:24:09
조회 34 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 우리나라를 대표해서 UN 연설자로 내보내고 싶은 스타는? 운영자 25/09/29 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47669 65
2894409 'ㅎㅂ' 윤 공주 실시간 라방킴ㄱㄱ ㅇㅇ(1.240) 22:48 0 0
2894406 누가 더 유명함 아리아나 그란데 호날두 디바(59.28) 22:43 0 0
2894402 러스트가 너무 뛰어난 언어이기 때문에 배우면 오히려 인생 망합니다. [1] 프갤러(110.8) 22:37 6 0
2894396 옥상달빛 발명도둑잡기(118.216) 22:29 5 0
2894393 카톡 쉴드치는 병신들이 어이없는점 밀우갤로그로 이동합니다. 22:25 8 0
2894392 이제 이재명 때문에 외식 안한다 중금속 발암물질 먹기 싫음 [2] ♥덩냥이♥갤로그로 이동합니다. 22:25 17 1
2894389 신념에 따라 180도 다르게 보일 내용 ㅇㅇ(121.168) 22:20 6 0
2894385 러스트는 단순히 실행성능이 좋은 언어가 아닙니다. [8] 프갤러(110.8) 22:13 32 0
2894383 러스트 인생 40 년 갈아 넣었습니다. 프갤러(59.16) 22:03 14 0
2894378 나도 예전에는 로레벨과 효율성에 애정이 깊었는데 [2] ㅇㅇ(121.168) 21:23 41 0
2894376 그알에서 2번이나 제보를 요청했지만 방영 실패한 미제사건 발명도둑잡기(118.216) 21:19 14 0
2894374 앱개발자의 현실을 보여줌 [5] 프갤러(121.142) 21:17 120 13
2894371 코인 자동매매는 외주받을때마다 로직 천차만별이고 [1] ㅆㅇㅆ(124.216) 21:08 36 0
2894367 멘헤라 모모링..❤ ♥덩냥이♥갤로그로 이동합니다. 20:55 20 0
2894366 AI 갓파더 얀 르쿤의 충격 경고 "LLM은 막다른 길, AGI는 오지 발명도둑잡기(118.216) 20:53 16 0
2894365 나라가 니꺼냐? 망하든 말든 신경꺼 ㅋㅋ [2] 나르시갤로그로 이동합니다. 20:53 27 0
2894358 나라망하는데이유있냐??기득권들이부패해서그렇지ㅋㅋ 타이밍뒷.통수한방(1.213) 20:30 14 0
2894354 아이폰 구매자 중 20% 확률로 똥가루폰 받는거 아님? [1] 야옹아저씨갤로그로 이동합니다. 20:20 21 0
2894352 요번에 한국 여행 가는데 포항이나 가볼까? Kyle(103.21) 20:18 13 0
2894350 러스트 담론을 해체하다 나르시갤로그로 이동합니다. 20:15 16 0
2894348 Rust 틀딱들의 죄가 너무도 많습니다 나르시갤로그로 이동합니다. 20:14 17 0
2894339 삼성 디바이스 컴포지트 디바이스 랑 연결성 디바이스 V2 뭡니까? 넥도리아2025(220.74) 19:56 25 0
2894335 AI를 쓴다는게 AI가 주는 소스 그대로 쓰는게 아닌데 착각하네 [1] 프갤러(125.184) 19:52 36 0
2894334 c cpp 틀딱들의 죄가 많습니다. 프갤러(110.8) 19:49 20 0
2894332 웹 프론트 엔드는 사실 문법보다 어떻게 꾸미느냐가 더 중요해서 [1] ㅆㅇㅆ(124.216) 19:43 39 0
2894328 연휴에도 회사에서 연락오는 사람? [9] ㅇㅇ(211.235) 19:28 56 0
2894327 언어가 메모리 안전성 보장해주면 좋은거 아닌가요? [21] ㅇㅇ(121.168) 19:28 54 0
2894326 c cpp 대체되는거는 그냥 요즘 젊은이들이 틀딱어 싫어합니다. 프갤러(110.8) 19:26 24 0
2894325 C++ 인생 40 년 갈아 넣었습니다. 프갤러(59.16) 19:23 25 0
2894324 나님.. 왤케 특별한걸깡..? ♥덩냥이♥갤로그로 이동합니다. 19:21 20 0
2894323 러스트는 특장점이 과장되고 과대성으로 홍보된 언어입니다. 나르시갤로그로 이동합니다. 19:17 19 0
2894322 러스트는 장기적으로도 c++ 대체 불가능해요. 입증 有 [5] 나르시갤로그로 이동합니다. 19:11 37 0
2894320 이력서 한줄도 작성 못함 ㅇㅇ(211.235) 19:10 17 0
2894318 ㅋㅅㅋ ♥덩냥이♥갤로그로 이동합니다. 19:07 18 0
2894311 러스트는 장기적으로 CPP 대체하겠지 이건 어쩔 수 없는 흐름임 [3] ㅆㅇㅆ(124.216) 19:00 37 0
2894310 엥? 프로그래머 중에 러스트를 한번도 안들어보신 분이 있다고요? 프갤러(110.8) 18:58 17 0
2894307 STAGE_DIR = 'stage' 이렇게 하지 말고, Rakefile이 나르시갤로그로 이동합니다. 18:54 12 0
2894304 나르시 저거 고도의 러빠임 [1] 프갤러(118.235) 18:50 22 0
2894301 러스트 사용하면 안 되는 이유: 버려지는 러스트 플젝틀 나르시갤로그로 이동합니다. 18:47 18 0
2894297 좋은 언어 나쁜 언어는 없습니다. 입증 有 [1] 나르시갤로그로 이동합니다. 18:36 17 0
2894296 좋은 언어라 함은 바로 얼마나 러스트와 유사한가가 척도이니라 프갤러(110.8) 18:32 13 0
2894295 좌파들 선동에 검찰 없대고 경찰도 없애야할 판 ㅋㅋ 나르시갤로그로 이동합니다. 18:31 10 0
2894294 러스트 빠는 이유가 대체 뭐야? 안전해서? 나르시갤로그로 이동합니다. 18:26 11 0
2894293 좋은 언어가 무엇인지가 [2] ㅇㅇ(121.168) 18:24 28 0
2894292 노인새끼들은 뒤지기전날에도 청년탓할새끼들임 ㅇㅇ 타이밍뒷.통수한방(1.213) 18:24 16 0
2894291 선택지 1개인 러스트 컴파일러에 취약점 있으면.. 나르시갤로그로 이동합니다. 18:21 13 0
2894290 러스트 빠돌이들 러스트 개떡같은거 갈수록 드러나서 ㅋㅋ 나르시갤로그로 이동합니다. 18:18 15 0
2894288 각종 빠돌이들 나때문에 발등에 불떨어졌겠네 ㅋㅋ 나르시갤로그로 이동합니다. 18:14 10 0
2894287 2025.10.02 러스트 메모리 취약점 ㅋㅋㅋ 나르시갤로그로 이동합니다. 18:13 16 0
뉴스 수원문화재단, 재즈·국악·팝페라 등 다채로운 무대 선보여. . .4일까지 매일 저녁 공연 이어져 디시트렌드 10.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2