[ 이전 ] [ 차례 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 다음 ]
이 문서는 평범한 데비안 사용자에게 평범한 용어로 데비안 GNU/Linux 패키지를 만드는 방법을 (개발자가 되고 싶어하는) 설명하며, 실제 예제를 이용해 이 방법을 설명할 것이다. 옛날에 한 로마사람이 이렇게 말하길, Longum iter est per preaecepta, breve et efficax per exempla! (규칙은 멀고 험한 길이지만, 예제와 함께 있으면 짧고 효율적이다!).
데비안을 이렇게 최상의 위치를 차지하는 리눅스 배포판으로 만든 한 가지 이유는 데비안의 패키징 시스템이다. 이미 엄청나게 많은 양의 소프트웨어가 이미 데비안 형식으로 만들어져 있긴 하지만, 어떤 경우에는 이렇게 데비안 패키지로 만들어 있지 않은 소프트웨어를 설치해야 할 경우도 있다. 이런 경우 직접 패키지를 만드는 방법을 알고 싶어할 것이고 어쩌면 이 작업이 매우 어려운 일이라고 생각할 지도 모르겠다. 음, 당신이 리눅스에 진짜 초보자라면 이 일은 어렵다. 하지만 당신이 정말 그렇게 풋내기라면, 지금 이 문서를 읽고 있지는 않을 것이다. :-) 유닉스 프로그래밍에 대해 약간 알아야 하지만, 절대 유닉스 프로그래밍의 도사일 필요는 없다.
확실한 것은: 여러분이 필요한 패키지를 적절히 만들고 관리하는 일이다. 작업을 할 우리 시스템을 위해서 실수를 하지 말아야하고 그러기 위해 관리자들은 기술적으로 뛰어나고 부지런해야 한다.
이 문서는 약간 관계없을 수 있지만 하나 하나 차근차근 설명해 나가면서 여러분이 첫 패키지를 만드는데 도움을 주고 패키지를 계속 관리해 나가면서 나중에 하게될 다른 패키지를 만들고 관리하는데 도움을 줄 것이다.
이 문서의 최신 버전은 http://www.debian.org/doc/maint-guide
에서
온라인으로 읽을 수 있고, 'maint-guide-ko
' 패키지에
들어 있다.
시작하기 전에, 데비안 패키지 개발에 필요한 패키지들이 설치되어 있어야 한다. 다음의 패키지 목록에는 `essential'이나 `required'라고 되어 있는 패키지는 포함하지 않았다 (`essential'이나 `required' 패키지는 이미 설치되어 있다고 가정한다).
이 문서의 수정본은 데비안 2.2 ('potato')와 3.0 ('woody')에 있는 패키지에 알맞게 업데이트 되었다.
다음 패키지들은 데비안을 표준으로 설치했을 때 포함되어 있을 테니, 아마도 이미 설치되어 있을 것이다. 어쨌든 `dpkg -s 패키지'로 패키지가 설치되어 있는지 확인해 보자
dpkg-dev
- 이 패키지는 패키지를 풀고 빌드하며
데비안 소스패키지를 업로드하는데 필요하다.
(dpkg-source(1)
참고)
file
- 이 손쉬운 프로그램은 이 파일이 어떤형태
파일인지 알려준다. (file(1)
참고)
binutils - 오브젝트 파일을 어셈블하고 링크할 때 쓰이는 프로그램 - 프로그램을 만드는 도구들이다. (`info binutil' 참고)
cpp - C 전처리기. (cpp(1)
참고)
cpio - tar나 zip과 같은 압축 프로그램이다.
(cpio(1)
참고)
gcc - GNU C 컴파일러. 대부분의 리눅스 프로그램은 C로
만들어졌다. (gcc(1)
참고) 이 패키지는 오브젝트
파일을 모으고 링크시키는 binutils
과 같은 몇몇
프로그램을 "끌어 온다"(binutils-doc
패키지
에 있는 `info binutils'를 참고). 그리고 C 전처리기인
cpp
도 "가지고 온다"(cpp(1)
) 참고)
g++
- GNU C++ 컴파일러로 C++로 만든 프로그램이면
필요하다.(g++(1)
참고)
libc6-dev - gcc가 링크할 때 필요한 C 라이브러리와
오브젝트 파일을 만들 때 필요한 헤더 파일. 몇몇
프로그램은 libc5를 추천/사용할 수도 있지만, 새로운
버전(libc6)을 사용하는 사용하는 것이 좋다. (
glibc-doc
패키지에 들어있는 `info libc' 참고)
make - 프로그램을 만드는 작업은 보통 여러 단계가 필요하다. 같은 명령어를 계속해서 다시 타이프하는 대신에, `메이크파일'을 만들어서 make를 사용하면 이 과정을 자동화할 수 있다. (`info make' 참고)
patch - 매우 유용한 프로그램으로, 원 파일과 패치된
파일의 차이점들이 열거되어 있는 파일(diff 프로그램으로
만든다)을 입력으로 받아들여 원 파일에 적용하면 패치된
버전을 만들어 낸다. (patch(1)
참고)
perl5 - 오늘날 유닉스 계열의 시스템에서 가장 많이
사용되는 인터프리터 스크립트 언어의 하나로,
"유닉스의 스위스 군용칼"로 불리우기도 한다.
(perl(1)
참고)
다음 패키지도 설치해야할 것이다:
autoconf
와 automake
- 많은 새로운
프로그램들은 설정 스크립트와 Makefiles을 쓰게 되는데
autoconf와 automake를 통해서 미리 도움을 받을 수 있다.(`info
autoconf`, `info automake` 참고)
dh-make와 debhelper - dh-make는 뒤에서 나올 예제
패키지를 만들 때 처음 그 골격을 만들 때 필요하다. 이
프로그램이 패키지를 만들 때 debhelper에 있는 도구들을
쓴다. debhelper 프로그램들은 패키지를 만들 때 꼭 필요한
프로그램은 아니지만, 새로운 관리자들에게는
강력하게 추천한다. 이 도구를 쓰는 편이 쓰지
않는 편보다 훨씬 시작하기도 쉽고, 나중에 관리하기도
쉽다. (dh_make(1)
, debhelper(1)
,
/usr/share/doc/debhelper/README 참고)
devscripts - 이 패키지에는 관리자들에게 쓸모있는 멋진 스크립트들이 들어 있다. 하지만, 이것도 패키지를 만드는 데 꼭 필요한 것은 아니다. (/usr/share/doc/devscripts/README.debian.gz 참고)
fakeroot - 빌드과정에서 필요한 `root가 되는' 일을
가상적으로 해 준다. (fakeroot(1)
참고)
gnupg
- 여러분이 전자 서명을 도와주는
패키지이다. 다른 사람에게 패키지를 배포할 때 꼭
필요하며 데비안 배포본에 패키지 작업 을 할 때 반드시 이
패키지를 써야한다.(gpg(1)
참고)
g77
- GNU 포트란 77 컴파일러인데 포트란으로
프로그램을 만들었다면 필요하다.(g77(1)
)
gpc
- GNU 파스칼 컴파일러인데 파스칼로
프로그램을 짰다면 필요하다. 파스칼 컴파일 작업에
유용한 Free 파스칼 컴파일러 fp-compiler
도 있다.
(gpc(1)
, ppc386(1)
)
xutils
- 몇몇 프로그램은 X11용으로 나와서 이
프로그램을 써서 매크로 함수모음에서 Makefiles를 만들 수
있게 해준다. (imake(1)
, xmkmf(1)
)
lintian - 패키지를 만든 다음에 흔히 범하는 실수가
있으면 알려주고 문제점을 설명해 준다.
(lintian(1)
, /usr/share/doc/lintian/lintian.html/index.html
참고)
마지막으로, doc 섹션에 다음의 매우 중요한 패키지들이 있다:
debian-policy - 이 안에는 아카이브의 구조와 내용, 몇몇 운영체제 설계 이슈, 파일시스템 구조 표준(Filesystem Hierachy Standard)이 들어 있고 무엇보다 (여러분에게) 가장 중요한 점은 배포판에 포함될 각 패키지가 지켜야 할 필수 조건들에 대해 설명한다는 것이다. (/usr/share/doc/debian-policy/policy.html/index.html 참고)
developers-reference - 패키징의 기술적인 점을 제외한 모든 문제를 다룬다. 아카이브의 구조, 어떻게 이름을 바꾸고, 주인없는 패키지로 만들고, 패키지를 떠맡고, 어떻게 NMU를 하고, 어떻게 버그를 관리하고, 언제 어디에 업로드를 해야 한다는 것 등이다. (/usr/share/doc/developers-reference/developers-reference.html/index.html 참고)
위에 주어진 짤막짤막한 설명은 각 패키지가 하는 일이 무엇이지 소개하는 것 뿐이다. 계속 나아가기 전에 각 프로그램의 문서를, 최소한 기본적인 사용법이라도 읽어보기 바란다. 지금은 문서를 읽는 일이 매우 부담스럽겠지만, 나중에 가면 문서를 읽어 보았다는 사실에 매우 다행스럽게 여길 것이다.
주: debmake 패키지에는 dh-make와 비슷한 기능을 하는
프로그램이 들어 있다. 하지만 debmake의 사용법은 이
문서에서 설명되지 않는다. 자세한 정보는
Debmake 매뉴얼
참고.
두 가지 종류의 패키지를 만들 수 있다. 한가지는 소스 패키지이고, 다른 하나는 이진 패키지이다. 소스 패키지에는 프로그램으로 컴파일할 수 있는 코드가 들어 있다. 이진 패키지에는 최종 프로그램이 들어간다. 프로그램의 소스와 프로그램의 소스 패키지라는 식으로 용어를 섞어 쓰지 말아야 한다! 이 용어에 대해 자세한 사항을 알고 싶으면 다른 매뉴얼을 읽어 보기 바란다.
데비안에서는 `관리자(maintainer)'라는 용어가 패키지를 만드는 사람을 가리킨다. 그리고 `상위 개발자(upstream author)'라는 말이 해당 프로그램을 만든 사람을 가리키고, `상위 관리자(upstream maintainer)'가 데비안과 관계없이 프로그램을 현재 관리하고 있는 사람을 가리킨다. 보통 개발자와 상위 관리자는 같은 사람이다 - 어떤 경우에는 관리자까지 같은 사람일 수도 있다. 만약 여러분이 프로그램을 만들고, 그 프로그램을 데비안에 포함시키려고 한다면 주저하지 말고 관리자가 되기 위한 신청을 하기 바란다.
패키지를 만든 다음에 (혹은 만드는 중에), 프로그램을 다음 배포본에 집어 넣고 싶을 경우에 (또 프로그램이 쓸모있는 경우, 물론 쓸모 있을 것이다) 공식 데비안 관리자가 되어야 한다. 그 과정은 Developer's Reference에 설명되어 있다. 이 문서를 읽기 바란다.
[ 이전 ] [ 차례 ] [ 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/