작업과정의 일부로서 APT는 어떤 패키지를 가지고 올 'sources'가 필요하다. 이 파일은 /etc/apt/sources.list이다.
이 파일들의 항목들은 다음과 같은 형태를 취하고 있다:
deb http://host/debian distribution section1 section2 section3
deb-src http://host/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 main contrib non-free
기본 데비안 설치에 필요한 내용들이다. 첫번째 deb는 공식적인 아카이브를 가리키고 두번째는 non-US 아카이브이고 세번째는 데비안 보안 업데이트를 가리킨다.
마지막 두개의 라인은 #으로 주석처리 되어 있는데 apt-get은 이를 무시한다. 이는 deb-src인데 데비안 소스 패키지를 포함한다. 테스팅이나 재컴파일을 위해서 프로그램 소스를 다운로드 하려면 주석을 없애주면 된다.
/etc/apt/sources.list 파일은 몇개 형태의 라인을 포함할 수 있다. APT는 http, ftp, file(로컬 파일로 마운트된 ISO9660 파일시스템을 포함한 디렉토리)와 ssh의 아카이브를 인식하고 다룬다.
/etc/apt/sources.list 파일을 변경한 후에 apt-get update를 반드시 실행하라. 이러면 여러분들이 정한 Sources가 적용이 되어서 APT가 사용하게 될 것이다.
때로는 여러분이 APT를 이용해서 설치하려는 수많은 .deb 패키지들이 있고 의존성이 자동으로 해결되어 설치되게 하고 싶은 경우가 있을 것이다.
디렉토리를 만들고 .deb를 여러분이 원하는 곳에 넣기 위해서는 다음과 같은 디렉토리를 만든다:
mkdir /root/debs
override 파일을 이용해서 여러분의 저장소를 위해 패키지의 control 파일위에서 정해진 정의를 변경할 수 있다. 이 파일안에는 패키지와 이미 있었던 옵션을 중복하여 덮어쓰는 몇가지 옵션들을 정할 수 있다. 다음과 같다:
package priority section
패키지는 패키지 이름이고 우선 순위는 low, medium이나 high이고 섹션은 이
패키지가 속할 섹션이다. 파일을 비어두는 것으로 충분한다. 파일 이름이 중요한
것이 아니라 이를 인자로서 dpkg-scanpackages을 위해 나중에 넘겨주면
된다. 만일 override을 작성하지 않고자 한다면
dpkg-scanpackages를 부를 때, /dev/null를 이용하기
바란다.
/root 디렉토리에서 할일은:
dpkg-scanpackages debs file | gzip > debs/Packages.gz
위에서 file은 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.8.2 - 2002년 11월 November 2002kov@debian.orgyooseong@debian.org