작업과정의 일부로서 APT는 어떤 패키지를 가지고 올 `sources'가 필요하다. 이 파일은 /etc/apt/sources.list이다.
이 파일들의 항목들은 다음과 같은 형태를 취하고 있다:
deb http://site.http.org/debian distribution section1 section2 section3
deb-src http://site.http.org/debian distribution section1 section2 section3
위의 항목들은 가상의 것이고 사용하지 말아야한다. 각 라인의 첫번째 단어는 deb나 deb-src는 아카이브의 형태를 의미하는데: 바이너리 패키지를 포함하는 경우는 deb이며 우리가 일반적으로 사용하는 미리 컴파일된 패키지들이고 deb-src를 의미하는 소프 패키지는 원본 소스에 데비안 제어파일(.dsc)과 프로그램을 데비안화 하여 만드는데 필요한 데비안 changes 파일인 diff.gz를 의미한다.
대개는 다음의 내용이 sources.list에 기본으로 들어있다:
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable non-US
기본 데비안 설치에 필요한 내용들이다. 첫번째 deb는 공식적인 아카이브를 가리키고 두번째는 non-US 아카이브이고 세번째는 데비안 보안 업데이트를 가리킨다.
마지막 두개의 라인은 #으로 주석처리 되어 있는데 apt-get은 이를 무시한다. 이는 deb-src인데 데비안 소스 패키지를 포함한다. 테스팅이나 재컴파일을 위해서 프로그램 소스를 다운로드 하려면 주석을 없애주면 된다.
/etc/apt/sources.list 파일은 몇개 형태의 라인을 포함할 수 있다. APT는 http, ftp, file(로컬 파일로 마운트된 ISO9660 파일시스템을 포함한 디렉토리)와 ssh의 아카이브를 인식하고 다룬다.
때로는 여러분이 APT를 이용해서 설치하려는 수많은 .deb 패키지들이 있고 의존성이 자동으로 해결되어 설치되게 하고 싶은 경우가 있을 것이다.
디렉토리를 만들고 .deb를 여러분이 원하는 곳에 넣기 위해서는 다음과 같은 디렉토리를 만든다:
mkdir /root/debs
/root 디렉토리 내에서 비어있는 파일을 어떤 이름으로든지 하나 만들어준다. 이유는 APT 저장소가 "override"라는 파일이 필요한데 이 팡리은 비어있을 수 있지만 존재해야한다. 다음의 명령을 통해서 이 파일을 만들 수 있다:
touch file
이 파일안에는 패키지와 이미 있었던 옵션을 중복하여 덮어쓰는 몇가지 옵션들을 정할 수 있다. 다음과 같다:
package priority section
패키지는 패키지 이름이고 우선 순위는 low, medium이나 high이고 섹션은 이 패키지가 속할 섹션이다. 파일을 비어두는 것으로 충분한다.
/root 디렉토리에서 할일은:
dpkg-scanpackages debs file | gzip > debs/Packages.gz
위에서 파일은 "override"이고 명령은 debs/Packages.gz를 만들어서 패키지에 대한 다양한 정보를 포함하고 있어서 APT가 사용하게 해준다. 패키지를 이용하려면 다음과 같이 추가한다:
deb file:/root debs/
이렇게 한 후에 APT 명령을 평상시와 같이 한다. 소스 저장소를 만들 수 있고 이를
하기 위해서는 동일한 과정을 하는데 .orig.tar.gz와
.dsc, .diff.gz를 디렉토리에 넣고 Packages.gz대신
Sources.gz를 사용하면 된다. 프로그램도 다르다: dpkg-scansources.
명령은 다음과 같다:
dpkg-scansources debs | gzip > debs/Sources.gz
dpkg-scansources는 "overrride" 파일이 필요없다.
sources.list는 다음과 같다:
deb-src file:/root debs/
새로운 사용자들 대부분이 의심하는 것은: "어떠한 데비안 미러를 사용해서 sources.list에 포함시킬까"하는 것이다. 어떤 미러를 선택하는 방법은 여러가지가 있다. 전문가들은 스크립트를 이용해서 몇개의 서버로 ping 시간을 측정하는 스크립트를 갖고 있지만 이를 도와주는 프로그램이 있다: netselect.
netselect를 설치하기 위해서는 다음과 같다:
apt-get install netselect
파라미터가 없이 실행하면 도움말을 보여준다. 공백으로 분리된 호스트(미러)를 이용해서 실행하면서 점수와 호스트 하나를 보여준다. 이 점수는 측정된 ping 시간이며 hops(네트워크 쿼리가 목적지에 도착하면서 지나가는 호스트)의 개수와 측정된 다운로드 속도(더 낮을수록 더 낫다)에 반비례한다. 돌아오는 호스트는 더 낮은 점수를 갖게 된다(점수의 모든 리스트는 -vv 옵션을 추가하면 찾을 수 있다). 다음의 예제를 보면:
bash$ netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
365 ftp.debian.org.br
bash$
이 의미는 netselect에 파라메타에 포함된 미러로부터 ftp.debian.org.br가 가장 좋다고 나왔고 점수는 365였다. (주의! 이는 필자의 컴퓨터에서 한 것이고 네트워크 상황은 접근 지점에 따라서 매우 다를 수 있으니 이 값은 다른 컴퓨터에서도 항상 같은 것은 아니다.)
지금은 /etc/apt/sources.list에 netselect에 의해 가장 빠른 미러를 넣고 (/etc/apt/sources.list 파일, 2.1 참고) 패키지 관리하기, 3에 있는 팁을 따른다.
참고: 미러의 리스트는 항상http://www.debian.org/mirror/mirrors_full에서
확인할 수 있다.
0.3 버젼으로 시작했던 netselect 패키지는 netselect-apt를 포함하고 있고 이는 위의 과정을 자동화 시켜준다. 파라메타로 디스트리뷰션 트리를 입력하고(기본은 안정이다) sources.list 파일이 가장 좋은 main과 non-US 미러가 생기고 현재의 디렉토리에 저장될 것이다. 다음의 예제는 안정 디스트리뷰션의 sources.list를 만들어낸다:
bash$ ls sources.list
ls: sources.list: File or directory not found
bash$ netselect-apt stable
(...)
bash$ ls -l sources.list
sources.list
bash$
기억할 것: sources.list 파일은 현재의 디렉토리에 생기고 반드시 /etc/apt로 옮겨져야 한다.
패키지 관리하기, 3에 나와 있는 팁을 따르면 된다.
여러분의 CD-ROM을 패키지를 설치하는데 사용하거나 자동적으로 APT를 이용해서
업데이트하려면 다음의 내용을 sources.list을 추가할 수 있다.
이렇게 하기 위해서는 apt-cdrom를 다음과 같이 이용하면 된다:
apt-cdrom add
드라이브에 데비안 CD-ROM을 넣고 실행한다. 이는 CD-ROM을 마운트하고 제대로 된 CD-ROM이면 디스크내에 있는 패키지 정보를 찾는다. CD-ROM 설정이 다소 비정상적이면 여러분은 다음의 옵션을 사용할 수 있다:
-h - program help
-d directory - CD-ROM mount point
-r - Rename a recognized CD-ROM
-m - No mounting
-f - Fast mode, don't check package files
-a - Thorough scan mode
예를 들어:
apt-cdrom -d /home/kov/mycdrom add
여러분의 리스트에 추가하지 않고 CD-ROM을 인식할 수 있다:
apt-cdrom ident
이 프로그램은 CD-ROM이 제대로 여러분의 시스템의 /etc/fstab에 들어 있는 경우에 작동한다.
APT HOWTO
1.7.3 - 2001년 9월 September 2001kov@debian.orgyooseong@debian.org