6장. 데비안 아카이브

# 6장. 데비안 아카이브

## 6.1. 데비안 배포판은 얼마나 많나요?

주 배포판 3개: "stable" 배포판, "testing" 배포판, 그리고 "unstable" 배포판. "testing" 배포판은 때때로 `동결' (6.5.1절. “무엇이 "testing"인가요? 어떻게 "frozen" 되나요?” 참조). 그 다음으로, "oldstable" 배포판 ("stable" 이전), 그리고 "experimental" 배포판.

Experimental은 아직 개발 중인 패키지에 사용되며 시스템이 깨질 위험이 높습니다. 최첨단 소프트웨어를 연구하고 테스트하려는 개발자가 사용합니다. 가장 경험이 많은 사람에게도 위험하고 해로울 수 있으므로 사용자는 거기에서 온 패키지를 사용하면 안 됩니다.

데비안 배포판을 선택할 때 도움이 필요하면 3장. 데비안 배포판 선택 참조.

## 6.2. Etch, Lenny 같은 이름은 무엇인가요?

그건 단지 "코드네임"입니다. 데비안 배포판은 개발 단계에 있을 때 버전 번호가 없고 코드명만 있습니다. 이 코드명의 목적은 데비안 배포판의 미러링을 더 쉽게 만드는 것입니다(만약 `unstable` 같은 디렉터리를 갑자기 이름을 `stable`로 바꾸면, 많은 항목을 불필요하게 다시 다운로드해야 함).

현재, `stable`은 심볼릭 링크이며 `trixie` (i.e. Debian GNU/Linux 13)를 가리키고, `testing`은 심볼릭 링크이며 `forky`를 가리킵니다. 이 뜻은 `trixie`은 현재 stable 배포판이며 `forky`은 현재 testing 배포판.

`unstable` 영원한 심볼릭 링크이며 `sid`를 가리키는데, 왜냐면 `sid`는 늘 unstable 배포판이므로 ( 6.3절. “"sid"는 무엇인가요?” 참조).

### 6.2.1. 과거에는 어떤 코드명을 썼나요?

`trixie` 및 `forky` 외에, 이미 사용한 것: `buzz` 릴리스 1.1, `rex` 릴리스 1.2, `bo` 릴리스 1.3.x, `hamm` 릴리스 2.0, `slink` 릴리스 2.1, `potato` 릴리스 2.2, `woody` 릴리스 3.0, `sarge` 릴리스 3.1, `etch` 릴리스 4.0, `lenny` 릴리스 5.0, `squeeze` 릴리스 6.0, `wheezy` 릴리스 7, `jessie` 릴리스 8, `stretch` 릴리스 9, `buster` 릴리스 10, `bullseye` 릴리스 11, `bookworm` 릴리스 12.

### 6.2.2. 코드명은 어디서 왔나요?

지금까지 그것은 픽사의 "토이 스토리" 영화에서 가져온 캐릭터였습니다.

- buzz (데비안 1.1)은 Buzz Lightyear,

- rex (데비안 1.2)는 tyrannosaurus,

- bo (데비안 1.3) Bo Peep, 양을 돌보는 소녀,

- hamm (데비안.2.0) 저금통,

- slink (데비안 2.1) Slinky Dog, 장난감 개,

- potato (데비안 2.2)은 Mr. Potato,

- woody (데비안 3.0) 카우보이,

- sarge (데비안 3.1) 초록 플라스틱 군인의 상사,

- etch (데비안 4.0) 장난감 화이트 보드 (Etch-a-Sketch),

- lenny (데비안 5.0) 장난감 쌍안경,

- squeeze (데비안 6) 세 눈 외계인의 이름,

- wheezy (데비안 7) 빨간 나비 넥타이 고무 장난감 펭귄,

- jessie (데비안 8) 요들링 카우걸,

- stretch (데비안 9) 8개 긴 팔에 빨판 달린 고무 장난감 문어.

- buster (데비안 10) Andy의 애완견.

- bullseye (Debian 11) Woody의 나무 장난감 말.

- bookworm (데비안 12) 손전등이 내장된 초록 장난감 벌레이며 책읽기를 좋아함.

- trixie (데비안 13) 파란 플라스틱 triceratops.

- sid 모든 장난감을 부순 옆집 사악한 이웃 아이.

토이 스토리 이름을 쓸 결정은 Bruce Perens가 만들었고 그 때,데비안 프로젝트 리더이며 영화 만드는 회사 Pixar에서 일했습니다.

## 6.3. "sid"는 무엇인가요?

sid 또는 unstable은 패키지가 초기 업로드 되는 곳입니다.절대 직접 릴리스 되지 않는데, 왜냐하면 릴리스 될 패키지는 testing에 들어가서 stable 에 나중에 들어갑니다. sid에는 릴리스 된 그리고 릴리스 안 된 패키지 모두 들어갑니다.

그 이름 "sid" 또한 "토이 스토리" 애니메이션 영화에서 온 것. sid는 장난감을 망가뜨린 옆집 소년 :-)

[2]

## 6.4. 무엇이 stable 디렉터리에 들어가나요?

- stable/main/: 이 디렉터리에는 공식적으로 Debian GNU/Linux의 최근 릴리스를 구성하는 패키지가 들어있습니다.

  이 패키지는 모두 데비안 자유 소프트웨어 지침을 준수하며 모두 자유롭게 사용하고 배포할 수 있습니다.

- stable/non-free/: 이 디렉터리에는 배포자가 조심스럽게 고려해야 하는 배포가 제한된 배포판이 들어있습니다.

  예를 들어, 어떤 패키지에는 상업적 배포를 금지하는 라이선스가 있습니다. 다른 것은 재배포될 수 있지만 실제로는 셰어웨어이며 자유 소프트웨어가 아닙니다. 이러한 패키지 각각의 라이센스는 패키지가 재배포(예: CD-ROM)에 들어가기 전에 연구되어야 하고 가능한 협상해야 합니다.

- stable/contrib/: 이 디렉터리에는 DFSG-자유이며 그 자체로 자유 배포가능한 패키지가 들어갑니다. 그러나 but somehow depend on a package that is not freely distributable and thus available only in the non-free section.

## 6.5. 무엇이 testing 배포판에 들어가나요?

패키지는 unstable에서 어느 정도 테스트를 거친 후 "testing" 디렉터리에 설치됩니다.

빌드된 모든 아키텍처에서 동기화되어야 하며 제거할 수 없게 만드는 종속성이 없어야 합니다. 또한 현재 불안정한 버전보다 릴리스에 중요한 버그가 적어야 합니다. 이런 식으로 "testing"이 항상 릴리스 후보에 가깝기를 바랍니다.

일반적인 "testing"의 상태와 개별 패키지에 대한 더 많은 정보 https://www.debian.org/devel/testing.

### 6.5.1. 무엇이 "testing"인가요? 어떻게 "frozen" 되나요?

"testing" 배포가 충분히 성숙하면 릴리스 관리자가 배포를 "freezing" 하기 시작합니다. 가능한 한 적은 수의 새로운 버그가 "unstable"에서 "testing" 들어갈 수 있도록 정상적인 전파 지연이 증가합니다.

잠시 후 "테스트" 배포는 진정으로 "frozen" 됩니다. 이는 릴리스에 중요한 버그 수정이 들어가지 않는 한 "testing"으로 전파되는 모든 새 패키지가 보류됨을 의미합니다. "테스트" 배포는 릴리스가 임박한 소위 "test cycles" 동안에도 계속 freeze 될 수 있습니다.

"testing" 릴리스가 "frozen" 되면 "unstable" 릴리스도 부분적으로 freeze 경향이 있습니다. 이는 개발자가 testing에서 freeze 된 소프트웨어에 사소한 업데이트가 필요한 경우와 testing이 "unstable" 되지 못하게 하는 릴리스 중요 버그를 수정하는 경우, 근본적으로 새로운 소프트웨어를 unstable에 업로드하는 것을 꺼리기 때문입니다.

우리는 "testing" 배포판에서 패키지 릴리스를 보류할 수 있는 버그, 또는 전체 출시를 보류할 수 있는 버그에 대한 기록을 보관합니다. 자세한 내용은 현재 testing 릴리스 정보를 참조하십시오.

버그 수가 허용 가능한 최대값으로 낮아지면 동결된 "testing" 배포판이 "stable"로 선언되고 버전 번호를 갖고 릴리스됩니다.

가장 중요한 버그 수는 "릴리스 크리티컬" 버그 수이며 릴리스에 중요한 버그 상태 페이지에서 따를 수 있습니다 . 일반적인 릴리스 목표는 NoRCBugs이며, 이는 배포판에 심각하거나 심각하거나 심각한 버그 가 없어야 함을 뜻합니다. 중요하다고 간주되는 문제의 전체 목록은 RC policy document에서 찾을 수 있습니다.

새로운 릴리스가 나올 때마다 이전의 "stable" 배포판은 더 이상 사용되지 않고 아카이브로 이동합니다. 자세한 내용은 데비안 아카이브 참조.

## 6.6. 무엇이 unstable 배포판에 들어가나요?

"unstable" 디렉터리에는 현재 개발 시스템의 스냅샷이 들어 있습니다. 사용자는 이러한 패키지를 사용하고 테스트할 수 있지만, 준비 상태에 대해 경고를 받습니다. unstable 배포판을 사용하는 것의 장점은 당신이 항상 GNU/리눅스 소프트웨어 산업의 최신 정보를 가지고 있다는 것이다. 하지만 만약 그것이 깨진다면: 당신은 두 부분 모두를 유지할 수 있습니다 :-)

언제나 main, contrib and non-free 서브디렉터리가 "unstable" 안에 있으며, "stable" 에서와 같은 기준으로 구분합니다.

## 6.7. 데비안 아카이브에 있는 그 모든 디렉터리는 무엇인가요?

Debian GNU/Linux용으로 패키지된 소프트웨어는 각 데비안 미러 사이트에 있는 여러 디렉터리 트리 중 하나에서 사용할 수 있습니다.

`dists`는 "distributions"의 줄임말이며, 현재 사용 가능한 데비안 릴리스(및 사전 릴리스)에 액세스하는 표준 방법입니다.

`pool` 디렉터리에는 실제 패키지가 들어 있습니다, 6.10절. “`pool` 디렉터리 안에는 무엇이 있나요?” 참조.

보충 디렉터리:

/tools/:

  부팅 디스크 생성, 디스크 드라이브 파티션 분할, 파일 압축/압축 해제 및 리눅스 부팅을 위한 DOS 유틸리티.

/doc/:

  기본 데비안 문서, 이 FAQ 처럼, 버그 보고 시스템 지침 등.

/indices/:

  사이트의 다양한 인덱스(메인테이너 파일 및 다시 정의한 파일).

/project/:

  대부분 개발자 전용 자료와 일부 기타 파일.

## 6.8. `dists/stable/main` 안의 디렉터리는 모두 무엇인가요?

주 디렉터리[3]안에, 인덱스 파일이 들어있는 3개 서브디렉터리 세트가 있습니다.

`binary-`무엇`` 서브디렉터리 세트에는 인덱스 파일이 있는데 각 컴퓨터 아키텍처의 바이너리 패키지가 들어있습니다. 예를 들어 `binary-i386` 은 인텔 x86에서 실행되는 패키지 또는 `binary-sparc`는 Sun SPARCStations에서 실행되는 패키지용.

각 릴리스 에서 가능한 완전한 목록은 릴리스 웹 페이지. 현재 릴리스에 대해서는 4.1절. “무슨 하드웨어 아키텍처/시스템에서 Debian GNU/Linux 가 돌아가나요?” 참조.

binary-* 안에 있는 인덱스 파일은 Packages(.gz, .bz2)라고 하며 해당 배포에 포함된 각 바이너리 패키지의 요약이 들어갑니다. 실제 바이너리 패키지는 최상위 `pool` directory 에 있습니다.

또한, source/라는 서브디렉터리가 있으며 배포판에 들어간 소스 패키지에 대한 인덱스 파일이 들어갑니다. 인덱스 파일은 Source(.gz, .bz2)입니다.

마지막으로, 설치 시스템 인덱스 파일용 서브디렉터리 집합이 있으며, `debian-installer/binary-`아키텍처``에 있습니다.

## 6.9. 소스 코드는 어디 있나요?

데비안 시스템의 모든 것에 소스 코드가 들어 있습니다. 또한 시스템에서 대부분의 프로그램의 라이선스 조건은 프로그램과 함께 소스 코드가 배포되거나 소스 코드를 제공하겠다는 제안이 프로그램과 함께 제공되어야 한다.

소스 코드는 모든 아키텍처별 `pool` 디렉터리( 6.10절. “`pool` 디렉터리 안에는 무엇이 있나요?” 참조)에 배포됩니다. 아카이브의 구조에 익숙할 필요 없이 소스 코드를 검색하려면 `apt-get source mypackagename` 같은 명령을 사용해 보십시오.

라이선스 제한으로 인해 소스 코드는 공식적으로 데비안 시스템의 일부가 아닌 "contrib" 및 "non-free" 영역의 패키지에 사용할 수 있거나 그렇지지 않을 수 있습니다. 어떤 경우에는 소스 없는 "이진 blob"만 배포할 수 있다(`firmware-misc-nonfree` 참조). 다른 경우 라이선스는 사전 구축된 바이너리 배포를 금지하지만, 사용자가 로컬에서 컴파일할 수 있는 소스 코드 패키지를 허용합니다(`broadcom-sta-dkms` 참조).

## 6.10. `pool` 디렉터리 안에는 무엇이 있나요?

패키지는 소스 패키지의 이름에 따라 구성된 큰 "pool"에 보관됩니다. 이를 관리하려면 풀은 섹션("main", "contrib" and "non-free")과 소스 패키지 이름의 첫 글자로 세분화됩니다. 이 디렉터리에는 여러 파일이 있습니다: 각 아키텍처에 대한 이진 패키지와 이진 패키지가 생성된 원본 패키지의 여러 파일.

어디에 각 패키지가 있는지 찾으려면 `apt-cache showsrc mypackagename` 같은 명령을 실행하고 "Directory:" 행을 보십시오. 예를 들어 `apache` 패키지는 `pool/main/a/apache/` 에 저장됩니다.

게다가, 또한 `lib*` 패키지 가 너무 많기 때문에 특별히 취급됩니다: 예를 들어, libpaper 패키지는 `pool/main/libp/libpaper/`에 저장됩니다.

[4]

## 6.11. "incoming"은 무엇인가요?

개발자가 패키지를 업로드한 후 패키지는 "incoming" 디렉터리에 잠시 머물다가 정품인지, 아카이브에 허용되는지 확인됩니다.

대개, 아무도 이 장소에서 물건을 설치하면 안 됩니다. 그러나 드문 경우이지만 incoming 디렉터리는 https://incoming.debian.org/ 에서 사용할 수 있습니다 . 패키지를 수동으로 가져와서 GPG 서명과 MD5sum을 .changes 및 .dsc 파일에서 확인한 다음 설치할 수 있습니다.

## 6.12. 어디서 이전 릴리스의 옛 패키지를 찾을 수 있나요?

오래된 릴리스는 메인 아카이브 및 미러에서 제거되는데, 이들은 "oldstable"(현재 릴리스 이전의 안정화 버전)까지만 내용을 보관합니다. 만약 더 오래된 버전의 패키지를 구하는 데 관심이 있다면, https://snapshot.debian.org/로 가십시오.

스냅샷 아카이브는 날짜 및 버전 번호를 기준으로 과거 패키지에 접근할 수 있게 해주는 wayback machine입니다. 여기에는 데비안 아카이브가 제공하는 모든 과거 및 현재 패키지가 들어 있습니다. 이는 regression이 언제 도입되었는지 추적하거나, 특정 애플리케이션 실행에 필요한 특정 환경을 구축하는 데 유용한 자원입니다. 스냅샷 아카이브는 일반적인 apt 저장소와 같은 방식으로 접근할 수 있어 누구나 쉽게 사용할 수 있습니다.

## 6.13. 내 적절한 저장소를 어떻게 설정하나요?

표준 데비안 패키지 관리 도구를 사용하여 설치하려는 개인 데비안 패키지를 구축했다면, 적절한 패키지 아카이브를 설정할 수 있습니다. 이는 데비안 프로젝트에서 배포하지 않는 데비안 패키지를 공유하려는 경우에도 유용합니다. 이 작업을 수행하는 방법에 대한 지침은 Debian Wiki 에 있습니다.

[2] 현재 sid는 없으며, FTP 사이트 구조는 큰 흠을 갖고 있었습니다: 아키텍처는 현재 unstable에 된다는 것, 배포판이 새 stable이 되면 릴리스 됩니다. 많은 아키텍처에서 그렇지 않습니다 결과적으로 그 디렉터리는 릴리스 때 옮겨집니다. 이것은 실용적이지 않은데 왜냐면 그 움직임이 많은 대역폭을 씹어먹기 때문입니다.

아카이브 관리자는 "sid"라는 특별한 디렉터리에 릴리스되지 않은 아키텍처에 대한 바이너리를 배치하여 이 문제를 해결하려고 몇 년 동안 작업했습니다. 아직 릴리스되지 않은 아키텍처는 처음 릴리스될 때 현재 stable에서 sid로의 링크가 있었고 그 이후부터는 unstable 트리 내부에서 정상적으로 만들어졌습니다. 이 레이아웃은 사용자에게 다소 혼란스러웠습니다.

패키지 풀의 출현으로( 6.10절. “`pool` 디렉터리 안에는 무엇이 있나요?” 참조) 바이너리 패키지는 배포에 관계없이 풀의 정식 위치에 저장되기 시작했습니다. 그래서 배포판을 릴리스 하는 것은 더이상 큰 대역폭을 미러에 차지하는 원인이 아닙니다.(그러나 개발 프로세스 전반에 걸쳐 많은 점진적인 대역폭 소비가 있음).

[3] `dists/stable/main`, `dists/stable/contrib`, `dists/stable/non-free` 및 `dists/unstable/main/`, 등.

[4] 역사적으로 패키지는 어느 배포판에 그것이 들어가느냐에 따라 `dists`의 서브디렉터리에 유지되었습니다. 이것은 주요한 사항이 바뀔 때 미러의 큰 대역폭 소비 같은 다양한 문제를 야기하는 것으로 드러났습니다. 이 문제는 패키지 풀 도입으로 해결되었습니다.

`apt` 같은 프로그램에서 사용하는 인덱스 파일에는 여전히 `dists`를 사용합니다.

5장. 데비안 시스템에서 가능한 소프트웨어 |  | 7장. 데비안 패키지 관리 시스템 기초