[ 이전 ] [ 차례 ] [ 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.hr
cwryu@debian.org/
yooseong@debian.org/