[ 이전 ] [ 저작권 ] [ 차례 ]

데비안 새로운 관리자 안내서
6 마지막 단계


6.1 패키지 빌드

해당 프로그램의의 주요 디렉토리로 들어가서 다음을 실행한다:

       dpkg-buildpackage -rfakeroot

이 명령어는 모든 작업을 해 줄 것이다. 여러분이 할 일은 PGP 비밀 키를 두번 입력하는 것 뿐이다. 다 끝났으면, 4개의 파일들이 위의 디렉토리(~/debian/)에 새로 만들어 진다:

큰 패키지의 경우, debian/rules를 바꿀 때마다 처음부터 패키지를 빌드하고 싶지는 않을 것이다. 테스트 목적으로, 상위 소스를 다시 빌드하지 않고 다음과 같이 빌드할 수 있다.

       fakeroot debian/rules binary

`install' 룰에 `install-stamp' 디펜던시가 없다는 점을 확인한다 (현재 기본적으로 그렇다). 그래야 `dh_clean -k`가 매번 실행된다. 모든 작업이 끝나면 제대로 업로드할 수 있도록 올바른 과정을 통해 꼭 빌드를 다시 해야 한다.


6.2 패키지에 오류가 있는지 검사하기

.changes 파일에 대해 lintian(1)을 실행한다; 이 프로그램은 자주 범하는 패키징 실수를 검사해 준다. 명령어는:

       lintian -i gentoo_0.9.12-1_i386.changes

물론 여러분의 패키지에서 만들어 지는 changes 파일의 이름을 쓴다. 무슨 애러가 있으면 (E:로 시작하는 줄), 거기에 대한 설명을 (N: 줄) 읽어보고, 실수를 수정하고, 패키지 빌드, 6.1에서 설명된 대로 다시 빌드한다. W:로 시작하는 줄이 있으면, 경고 메세지일 뿐이므로 패키지에 문제가 없다고 해도 좋다 (하지만, 물론 약간 조정할 필요는 있다).

dpkg-buildpackage로 빌드하고 lintian으로 검사하는 과정을 debuild(1) 명령 한 번에 할 수 있다.

패키지 내부를 mc(1)와 같은 파일 관리자로 들여다 보거나 dpkg-deb(1)을 이용해 임시 위치에 압축을 풀어 본다. 바이너리 및 소스 패키지에 필요 없는 파일이 들어가 있지 않는지 검사한다. 그 경우에 무언가 잘못이 있는 것이고 필요없는 파일이 지워지지 않은 것이다. 팁: `zgrep ^+++ ../gentoo_0.9.12-1.diff.gz`을 실행하면 소스 파일에서 바뀌거나/추가된 파일을 알 수 있다. 또 `dpkg-deb -c gentoo_0.9.12-1_i386.deb`으로 패키지의 파일 목록을 볼 수 있다.

테스트를 위해 직접 패키지를 설치해 본다 (debi(1) 명령으로). 할 수 있으면 여러분 컴퓨터 이외의 시스템에도 설치해 보고, 무슨 문제가 있는지 살펴 본다.

나중에, 새로운 버전을 빌드하는 일이 있으면, 패키지를 제대로 업그레이드할 수 있도록 다음을 확인해야 한다:


6.3 패키지 업로드하기

이제 새로운 패키지를 완전히 테스트했으므로, dupload(1)를 사용해 이 파일을 master.debian.org에 업로드한다. 처음에 dupload의 설정 파일 ~/.dupload.conf를 셋업해야 한다. 다음과 같이 쓴다:

       package config;
       $default_host = "master";
       
       $cfg{"master"}{"method"} = "scpb";
       $cfg{"master"}{"login"} = "joy";
       $cfg{"master"}{"visibleuser"} = "jrodin";
       $cfg{"master"}{"visiblename"} = "jagor.srce.hr";
       $cfg{"master"}{"fullname"} = "Josip Rodin";
       
       $cfg{"non-us"}{"method"} = "scpb";
       $cfg{"non-us"}{"login"} = "joy";
       $cfg{"non-us"}{"visibleuser"} = "jrodin";
       $cfg{"non-us"}{"visiblename"} = "jagor.srce.hr";
       $cfg{"non-us"}{"fullname"} = "Josip Rodin";
       
       1;

물론, 개인적인 정보는 여러분에 맞게 바꿔야 한다. 각 옵션이 의미하는 바는 dupload.conf(5) 맨 페이지에 있다.

       dupload --to master gentoo_0.9.12-1_i386.changes

dupload는 파일의 .changes 파일에 들어 있는 파일에 대해 MD5 체크섬이 맞는지를 확인하고, 맞지 않을 경우 경고를 낸다. 이 경우 패키지 빌드, 6.1에 설명된 대로 다시 빌드해서 제대로 업로드하도록 한다.

Dupload는 master.debian.org의 암호를 물어보고, 패키지를 업로드하고, 필요한 경우 업로드에 대한 공지사항을 debian-devel-changes@lists.debian.org에 보낸다.

유럽에 살고 있다면, master 대신에 또 다른 업로드 큐를 쓸 수 있다. 자세한 사항은 dupload(1), dupload.conf(5) 그리고 Developer's Reference를 보기 바란다.


6.4 패키지 갱신

해당 패키지에 버그 #54321이 보고되었다고 하자. 그리고 그 버그는 여러분이 고칠 수 있는 버그이다. 새로운 패키지 개정판을 내기 위해 할 일은:

그러면 이번에는 좀 다른, 약간 더 복잡한 상황을 생각해 보자 - 새로운 상위 버전이 릴리즈되었고, 이 버전을 패키징하려고 한다. 이 때 할 일은:

`debian/watch' 파일을 watch.ex, 5.6에서 설명한 대로 설정한 경우, uscan(1)을 실행하면 자동으로 원 소스가 바뀌었는지 확인하고, 소스를 내려받고, uupdate를 실행한다.


6.5 도움을 얻을 수 있는 곳

널리 알려진 장소에 질문을 하기 전에, 부디 RTFM한다. 읽어 볼 문서는 /usr/share/doc/dpkg, /usr/share/doc/debian, /usr/share/doc/package/* 파일들과 이 글에 포함된 각 프로그램들의 맨페이지, info 페이지이다. 버그 보고를 받는다면 (진짜 버그 보고!) 여러분은 이제 Debian Bug Tracking System에 들어섰고, 거기에 있는 문서를 읽어야 한다. 그래야 버그 보고들을 효과적으로 이용할 수 있다.

debian-mentors@lists.debian.org에 있는 데비안 조언자의 (Debian Mentors') 메일링 리스트에 가입하면, 경험있는 데비안 개발자가 여러분의 의문을 풀어 줄 것이다. 이 리스트는 debian-mentors-request@lists.debian.org 주소로 제목에 `subscribe'를 써서 이메일을 보내면 가입된다.

아직도 의문이 있다면, debian-devel@lists.debian.org에 있는 데비안 개발자의 메일링 리스트에 물어본다. 이 리스트는 debian-devel-request@lists.debian.org 주소로 제목에 `subscribe'라고 써서 이메일을 보내면 가입된다. 여러분이 이미 데비안 개발자라면 어쨌든 이 리스트에 가입해야 한다.

설령 잘 동작하더라도, 이제부터 기도를 시작해야 한다. 왜 그럴까? 이제 몇 시간 (혹은 며칠) 후면 전세계의 사용자들이 당신의 패키지들을 쓰기 시작할 것이기 때문이다. 또 중대한 오류를 범한 경우에, 분노한 수많은 데비안 사용자들로부터 메일폭탄이 날아올 것이다... 농담. :-)

마음 놓고 버그 보고에 대비한다. 패키지가 완전히 데비안 정책에 들어맞으려면 이보다 훨씬 많은 작업이 필요하다 (다시 한번 말하지만, 자세한 내용을 알려면 실제 문서를 읽기 바란다). 행운을 빈다!


[ 이전 ] [ 저작권 ] [ 차례 ]
데비안 새로운 관리자 안내서
version 1.0, 25 January 2000.
Josip Rodin jrodin@jagor.srce.hr
번역: 류창우 cwryu@debian.org/