[ 이전 ] [ 차례 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 다음 ]
개발자 코너
웹페이지에 들어 있는 문서는, 새로운 관리자가 확실히
어디서부터 어떻게 작업을 시작할지 알려주지 않는다.
하지만 이 문서에서는 (처음에는 별 상관없는) 매 단계
하나하나를 설명할 것이고, 독자가 첫번째 패키지를 만들
수 있도록 도와주고, 독자는 그 패키지의 다음 릴리즈를
만들고 나중에 다른 패키지를 만들 면서 경험을 얻을 수
있을 것이다.
아마도 여러분은 만들고자 하는 패키지를 벌써 골랐을 것이지만, 초보자를 위해 몇가지 짚고 넘어갈 사실을 써 놓았다:
그 패키지가 이미 배포판 안에 있는지 확인한다. `stable'
배포판을 사용한다면, package search
page에 가 보는 것이 가장 좋다. 현재의
`unstable' 배포판을 사용한다면 다음 명령어로 확인한다:
dpkg -s program
dpkg -l '*program*'
이미 패키지가 있다면 그냥 설치해라! :-) 만일 그 패키지가
고아가 됐다면 -- 그 패키지 메인테이너가 "데비안 QA
모임"이라면 그 패키지를 가져올 수 있다. 고아
패키지목록 을 살표보고 입양할
패키지목록 을 잘 살펴서 패키지가 도움이
필요한지 안한지 확인해야한다.
만일 패키지를 입양할 수 있다면 apt-get source packagename)를 해서 소스를 받고 테스트를 해봐라. 이 문서는 불행히 패키지 입양까지 친절하게 설명해주고 있지 않다. 고맙게도 이 패키지 안에는 이미 설정파일들이 잘 되어 있기 때문에 그리 어럽지 않게 패키지가 잘 돌아가게 할 수 있을 것이다. 그래도 아래에 나와있는 내용을 꼼꼼이 읽어두면 많은 도움을 받을 것이다.
패키지가 새롭다면 데비안에 있는지 우선 찾아봐야한다. 다음 과정을 따라하면 된다:
다른 누군가가 이미 패키지를 만들고 있는지 the list of packages
being worked on. 에서 확인하라. 이미 다른 누군가가
만들고 있으면 그들에게 이야기를 해보고 그게 안된다면
누구도 관리하지 않는 새로운 패키지를 찾아본다.
프로그램은 반드시 라이센스가 있어야 한다.
가능하다면 Debian Free
Software Guidelines에 맞는 자유로운 라이센스여야
한다. DFSG에 맞지 않는다고 해도 데비안의 `contrib'이나
`non-free' 섹션에 포함될 수 있다. 어느 섹션에 들어갈지
불확실하다면, debian-legal@lists.debian.org에
물어본다.
프로그램은 절대 setuid root, 혹은 그 이상으로 실행되어서는 안 된다. setuid나 setgid인 프로그램이 없어야 한다.
프로그램은 데몬이어서는 안되고, */sbin 디렉토리에 들어가는 프로그램이어서도 안 된다.
프로그램은 이진 실행 프로그램이다. 아직 라이브러리는 시도해 보지 않는다.
잘 문서화되어 있어야 한다. 최소한 (모든 사람이) 이해할 수 있어야 한다.
프로그램의 개발자와 연락해서 개발자가 패키징에 동의하는지 확인한다. 프로그램에 관계된 문제가 발생했을 경우에 개발자와 연락할 수 있도록 하는 건 매우 중요한 일이므로, 관리되고 있지 않은 소프트웨어를 패키징하려고 노력하지 말라.
그리고 마지막이지만 중요한 것으로 그 프로그램이 제대로 동작하는지 알아야 하고, 어느정도 그 프로그램을 사용해 봤어야 한다.
물론 위의 사항들은 안전을 위한 조치일 뿐이며, setuid 데몬에서 뭘 잘못했을 경우, 분노한 사용자들로부터 여러분을 보호하기 위한 조치이다... 패키징에 좀 더 많은 경험을 쌓으면, 그러한 패키지도 만들 수 있을 것이다. 하지만, 가장 경험많은 개발자라 할지라도 의심스러울 경우에는 debian-devel 메일링 리스트에 물어본다. 그리고 그 곳의 사람들이 기쁜 마음으로 도움을 줄 것이다.
여기에 대한 더 많이 알고 싶으면, Developer's Reference를 참고하기 바란다.
이제 첫번째로 할 일은 원 패키지를 찾아서 내려받는 일이다. 여러분은 이미 개발자의 홈페이지에서 가져온 소스 파일이 있다고 가정한다. 자유 리눅스 프로그램의 소스는 보통 tar/gzip 형식이고, .tar.gz이나 .tgz 확장자가 붙어 있고, 그 안에 `프로그램-버전'이라는 서브 디렉토리가 있어서 그 안에 모든 소스가 들어 있다. 여러분의 프로그램 소스가 다른 종류의 압축으로 되어 있다면 (예를 들어, 파일이름이 .Z나 .zip으로 끝난다면), 적당한 도구로 그 파일을 푼다. 올바르게 푸는 방법을 모르겠으면 debian-mentors에 물어본다 (힌트: `file 아카이브명.확장자'을 실행한다).
예제로 나는 `gentoo'라는 이름의 프로그램을 사용할 것이다. gentoo는 GTK+를 사용하는 X11용 파일 관리자이다. 이 프로그램은 이미 패키징되어 있고, 현재 이 패키지는 이 문서를 처음 작성할 당시의 버전과 비교하면 많은 부분이 달라져 있음에 유의한다.
홈 디렉토리 밑에 `debian'이나 `deb' 등 적당한 이름의 디렉토리를 만든다 (이 경우에는 ~/gentoo/ 가 좋을 것이다). 그 안에 내려 받은 압축 파일을 놓고, 압축을 푼다 (`tar xzf gentoo-0.9.12.tar.gz'으로). 여기서 애러가 없어야 한다. 무시할 수 있는 애러라도 다른 사람들의 시스템에서 압축을 풀 때 문제가 발생할 수 있다. 그 사람들의 시스템에서는 그 애러가 무시할 수 없을 수 있기 때문이다.
이제 새로운 `gentoo-0.9.12'라는 서브 디렉토리가 생긴다. 그 디렉토리로 들어가서 거기에 주어진 문서를 완전히 읽는다. 그 문서는 보통 README*, INSTALL*, *.lsm, 혹은 *.html이라는 파일 안에 들어 있다. 그 파일 안에 어떻게 프로그램을 컴파일하고 설치할 것인지에 관한 안내가 들어 있을 것이다. (보통 /usr/local/bin 디렉토리에 설치한다고 가정할 것이다; 패키징시에는 그렇게 하지 않는다. 자세한 것은 뒤의 서브 디렉토리에 설치, 3.1참고.)
프로그램을 컴파일하고 설치하는 과정은 프로그램마다 다르지만, 최근의 프로그램은 대부분 `configure' 스크립트가 있어서 여러분의 시스템에 맞게 소스를 설정하고, 시스템이 소스를 컴파일할 수 있는 지를 검사해 준다. (`./configure'로) 설정을 한 후에, 프로그램은 보통 `make'로 컴파일된다. 어떤 경우엔 `make check'가 지원되고, 이 명령어는 거기에 포함된 자체 검사를 실행하게 된다. 목표 디렉토리로 설치하는 명령은 보통 `make install'이다.
이제 프로그램을 컴파일하고 실행해 보면서, 이 프로그램이 문제 없이 동작하고 설치나 실행 과정에서 충돌이 생기지 않는지 확인한다.
또 설치된 파일들을 지우려면 보통 `make uninstall'을 타이프한다. 그리고 빌드 디렉토리를 지우고 새롭게 빌드하려면 `make clean'(혹은 더 좋은 `make distclean')을 타이프한다.
완전히 깨끗한 (빌드하기 전 원래 모습의) 소스 디렉토리에서 시작해야 한다. 간단히 새로 압축을 푼 소스에서 시작할 수도 있다.
프로그램이 제대로 빌드되었다면, 프로그램의 원래 이름을 소문자로 바꾼다 (이미 소문자가 아니라면). 그리고 소스 디렉토리의 이름을 <패키지명>-<버전>로 바꾼다.
프로그램 이름이 한 단어 이상으로 구성되어 있다면, 한 단어로 바꾸거나 줄임말을 쓴다. 예를 들어, "John's little editor for X" 패키지는 johnledx, jle4x 등의 이름으로 바뀐다. 이름은 여러분이 결정하기 나름으로 어느 정도 적당한 (20자 정도) 길이보다 짧으면 된다.
또 프로그램의 정확한 버전을 확인한다. 이 버전은 패키지 버전에 포함된다. 해당 소프트웨어가 X.Y.Z같이 버전이 매겨져 있지 않고, 릴리즈 날짜만 매겨져 있는 경우에는 그 날짜를 버전으로 사용하되, "0.0."을 앞에 붙인다 (어느 날 갑자기 상위 관리자가 버전을 1.0과 같이 붙일 경우를 대비해서). 날짜가 1998년 12월 19일이라면 0.0.19981219라고 버전을 쓰면 될 것이다.
어떤 프로그램은 아예 버전이 없는 경우도 있는데, 이 경우는 상위 관리자에게 연락해서 각 버전을 구분하는 어떤 방법이 있는지 확인한다.
프로그램 소스 디렉토리 안에 들어간 다음, 다음을 실행한다:
dh_make -e 여러분의.관리자@주소 -f ../gentoo-0.9.12.tar.gz
당연히 "여러분의.관리자@주소"는 여러분의
전자우편 주소를 쓴다. 이 주소는 changelog와 그 밖의
파일들에 포함된다. 그 다음은 원 소스 압축 파일의
이름이다. 자세한 것은 dh_make(1) 참고.
몇가지 정보가 나타날 것이다. dh_make는 만들고자 하는 패키지가 어떤 종류인지 물어볼 것이다. gentoo는 한개의 이진 패키지이다 - 이 패키지 안에는 한개의 바이너리만 들어 있으므로, 한개의 .deb 파일만 필요하다 - 그러므로 우리는 첫번째 `s' 키를 누르고 화면의 저보를 확인한 다음 <엔터>를 누른다. 새로운 관리자인 여러분은 앞에서 설명한 대로, 여러개의 바이너리 패키지나, 라이브러리 패키지를 만들지 않는 것이 좋다. 사실 이러한 패키지를 만드는 것도 그리 어려운 것은 아니지만, 좀 더 지식이 필요하므로 여기서는 설명하지 않는다.
dh_make를 오직 한번만 실행해야 한다는 것에 주의하자. dh_make는 이미 "데비안화 되어 있는(debianized)" 디렉토리에서 똑같이 여러번 실행할 경우 제대로 동작하지 않을 것이다. 여기서 앞으로 새로운 버전의 패키지 개정판을 릴리즈할 때는 dh_make가 아닌 다른 방법을 사용할 것이라는 사실을 알아 챌 수 있다. 이 방법에 관해서는 이 문서의 뒷 부분의 패키지 갱신, 9 참고.
[ 이전 ] [ 차례 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 다음 ]
데비안 새로운 관리자 안내서
version 1.2, 6 April 2002.jrodin@jagor.srce.hrcwryu@debian.org/yooseong@debian.org/