자유 소프트웨어진영에서는 소스코드를 공부하거나 버그가 있는 코드를 수정하는 것이 일상적인 것이다. 이렇게 하기 위해서는 프로그램의 소스를 우선은 다운로드 받는다. APT 시스템이 소스코드를 디스트리뷰션내에 포함된 많은 프로그램들에 소스코드를 가져오게 해주고 .deb를 만들기 위해서 필요한 모든 파일들을 포함해서 가지고 오게 도와준다.
데비안 소스의 다른 일반적인 사용은 프로그램의 좀더 최근의 버젼을 불안정 디스트리뷰션에서 가져와서 안정 디스트리뷰션에서 사용하게 하는 것이다. 안정에서 패키지를 안정버젼에서 컴파일하면 디스트리뷰션에 있는 패키지에 알맞는 의존성을 가지고 .deb를 만들어준다.
이렇게 하기 위해서는 deb-src 항목을 /etc/apt/sources.list에 넣어서 불안정 버젼의 파일을 받게 해주면 된다. 주석을 없애고 사용하면된다. /etc/apt/sources.list 파일, 2.1 부분을 참조하라.
소스 패키지를 다운로드 하기 위해서는 다음의 명령을 이용한다:
apt-get source packagename
이렇게 하면 세가지 파일을 얻게 되는데: .orig.tar.gz, .dsc와 .diff.gz. 데비안만을 위한 패키지의 경우에 마지막 파일은 다운로드 되지 않고 첫번째는 이름에 "orig"이 없게 됩니다.
.dsc 파일은 소스 패키지를 패키지버젼 디렉토리 안에 풀 때 dpkg-source에 의해 이용되는 것이다. 각 다운로드된 소스패키지에는 debian/ 디렉토리가 있는데 .deb 패키지를 만들어주는데 필요한 파일들을 포함하고 있다.
다운로드를 하면서 자동적으로 패키지를 빌드하고자 하면 -b를 다음과 같이 추가하면 된다:
apt-get -b source packagename
다운로드 하면서 .deb를 다운로드 하면서 만들고 싶지 않다면 다음과 같이 나중에 실행하면 된다:
dpkg-buildpackage -rfakeroot -uc -b
다운로드후에 패키지를 위해 만들어진 디렉토리에서 하면 된다.
apt-get의 source와 다른 방법의 차이는 있다.
source 방법은 루트 권한 없이도 일반 사용자들이 이용할 수 있다.
파일은 apt-get source package를 실행한 디렉토리에 다운로드 된다.
일반적으로 특정 헤더와 공유 라이브러리는 소스패키지를 컴파일하기 위해서 있어야한다. 모든 .deb 패키지들은 control 파일에 소스에서 빌드하여 추가 패키지를 만들 때 필요한 부분을 지칭하는 'Build-Depends:' 필드를 포함하고 있다.
APT는 이러한 패키지들을 자동으로 다운로드 해주는 단순한 방법을 갖고 있다. 단지 apt-get build-dep package를 실행하면 되는데 여기서 'package'는 여러분이 빌드할 패키지 이름이다. 예를 들면:
[root]@[/] # apt-get build-dep gmc
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
libgpmg1-dev
0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Need to get 1069kB of archives. After unpacking 3514kB will be used.
Do you want to continue? [Y/n]
설치될 패키지들은 빌드할 gmc에 필요한 패키지들이다. 이 명령은
컴파일할 프로그램의 소스 패키지를 찾지는 않는다. apt-get source을
실행하여 이를 따로 실행할 수 있다.
APT HOWTO
1.7.3 - 2001년 9월 September 2001kov@debian.orgyooseong@debian.org