안녕하세요~
제가 repository 구성과 관련해서 공부하면서 궁금한 점 몇개 여쭤봅니다.
먼저 repository를 구성하는 방법은
- apache2를 설치 하고 /var/www/를 root로 설정
- /repo/ubuntumirror/ 라는 디렉토리 생성후 /var/www/에 ubuntu라는 symlink 생성(ln -s /repo/ubuntumirror ubuntu)
- mirrorbuild.sh 쉘 실행
[code:1zw1oy97]
export GNUPGHOME=/home/mirrorkeyring
arch=amd64
section1=main,restricted,universe,multiverse,main/debian-installer,restricted/debian-installer,universe/debian-installer,multiverse/debian-installer
section2=main,restricted,universe,multiverse
release1=karmic
release2=karmic,karmic-security,karmic-updates
server=de.archive.ubuntu.com
inPath=/ubuntu
proto=http
outPath=/repo/ubuntumirror
debmirror -a $arch
–no-source
-s $section1
-h $server
-d $release1
-r $inPath
–progress
–nocleanup
-e $proto
$outPath
debmirror -a $arch
–no-source
-s $section2
-h $server
-d $release2
-r $inPath
–progress
–nocleanup
-e $proto
$outPath[/code:1zw1oy97]
이렇게 하면 일단 기본적인 respository는 구성이 된 것 같습니다. apache2에서 설정해 준 ip로 sources.list에 repository 추가 해주고 aptitude update 해준 후
확인.
이렇게 레파지토리를 구성하고 repository를 살표 보면 다음과 같습니다.
[code:1zw1oy97]+ dist
+++karmic
+++++main
+++++++++binary-amd64
++++++++++++++Packages
++++++++++++++Packages.gz
++++++++++++++Packages.bz2
++++++++++++++Release
+++++++++debian-installer
++++++++++++++binary-amd64
++++++++++++++++++++Packages
++++++++++++++++++++Packages.gz
++++++++++++++++++++Packages.bz2
++++++++++++++++++++Release
+++++multiverse
-메인과 동일
+++++restricted
-메인과 동일
+++++universe
-메인과 동일
+++++Release
+++++Release.gpg
+++karmic-security
위 디렉토리 구조와 동일
+++karmic-updates
위 디렉토리 구조와 동일
+++stable (symlink karmic)
- pool
+++main
+++multiverse
+++restricted
+++universe - project[/code:1zw1oy97]
위 구조에 대해 살펴 보면
1. pool 디렉토리는 순수 패키지들이 위치한 디렉토리.
2. dist는 pool에 있는 패키지들에 대한 인덱스(Package) 파일들이 위치한 디렉토리.
Package 파일들은 다음과 같은 명령어로 생성 가능하며 package 파일에는 패키지에 대한 정보 및 checksum 값을 가지고 있음.
Package 파일은 다음과 같은 명령어로 생성 가능.
( 위 디렉토리 구조에 맞게 간단히 작성한 쉘입니다.)
[code:1zw1oy97] #!/bin/bash
list="main multiverse restricted universe"
for i in $list
do
dpkg-scanpackages --arch amd64 /repo/ubuntumirror/pool/${i} /dev/null > /repo/ubuntumirror/dists/karmic/${i}/binary-amd64/Packages
gzip -9c /repo/ubuntumirror/dists/karmic/${i}/binary-amd64/Packages > /repo/ubuntumirror/dists/karmic/${i}/binary-amd64/Packages.gz
bzip2 -9 /repo/ubuntumirror/dists/karmic/${i}/binary-amd64/Packages
done[/code:1zw1oy97]
3. Release 파일은 각 Package, Package.gz, Pakcage.bz2 파일에 대한 checksum 정보를 가지고 있는 파일이며 다음과 같은 명령어로 생성 가능.
apt-ftparchive -c /etc/apt/apt-release.conf release /repo/ubuntumirror/dists/karmic/ > /repo/ubuntumirror/dists/karmic/Release
4. Release.gpg 파일은 Release에 대한 인증 정보가 있는 파일이며
http://wiki.debian.org/SecureApt 에 자세한 설명이 있음.
이정도가 제가 찾아본 것인데 여기서 몇가지 궁금한 점이 있네요.
1. karmic, karmic-security, karmic-updates 디렉토리의 각각 용도가 무엇인지 궁금하네요.(실제 패키지들은 pool 디렉토리 하위에 있는 반면......)
2. dists디렉토리 하위 각 main, universe, restricted, multiverse 하위 +debian-installer 의 디렉토리의 용도는 무엇인지요?(아마 우분투 설치와 관련되는 것 같은데...)
3. repository를 통해서 ubuntu를 설치 할때 필수로 설치 되는 패키지들에 대한 목록은 어디서 가지고 있는지.....
쓰다 보니 너무 길어 졌네요 읽어 주셔서 감사합니다.