Розділ 5. FTP-архіви Debian
5.1 Що означають всі ті каталоги на ftp-архівах Debian?
Програмне забезпечення, що було запаковане для Debian GNU/Linux доступне у одному з дерев каталогів на кожному дзеркальному сайті Debian.
Каталог dists це скорочення від "distributions" (дистрибутиви, збірки); він є канонічним шляхом для отримання доступу до поточної стабільної версії.
Каталог pool містить поточні пакунки, дивись параграф 5.10.
Є наступні додаткові каталоги:
/tools/ : DOS-утиліти для створення завантажувальних дисків, розподілу вашого приводу на розділи, стиснення/розстиснення файлів та завантаження Linux.
/doc/ : Основна документація Debian, така як ЧАПИ, інструкції до системи відслідковування помилок та ін.
/indicies/ : Файл Maintainers та проігноровані файли.
/project/ : Переважно матеріали, що призначені для розробників, як наприклад
/project/experimental/ : Цей каталог містить пакунки та інструменти, які все ще розробляються і знаходяться в режимі попереднього тестування. Користувачі не повинні використовувати пакунки звідси, тому що це може бути небезпечно і завдати шкоди навіть для системи під керуванням доволі досвідченої людини.
5.2 Скільки збірок Debian знаходиться у каталозі dists?
Є три збірки - стабільна збірка, тестова та нестабільна. Тестова збірка іноді "заморожується" (дивись параграф 5.6.1).
5.3 Що означають всі ці імена на кшталт (slink), картопля (potato), та ін.?
Це просто умовні назви. Коли збірка Debian знаходиться в стадії розробки, вона не має номера версії, а лише умовну назву. Вони використовуються щоб полегшити віддзеркалення збірок Debian (якщо справжній каталог, наприклад unstable раптом поміняє свою назву на stable, потрібно буде заново переписувати дуже багато файлів).
На даний момент stable є символічним відсилачем на sarge (цебто Debian GNU/Linux 3.1), а testing - на etch. Тобто sarge є поточною стабільною версією, а etch - тестується.
unstable є постійним символічним відсилачем на sid, так як sid є постійною нестабільною збіркою (дивись параграф 5.4).
5.3.1 Які кодові назви вже використовувались?
Окрім вищезгаданих використовувались наступні кодові назви: buzz для версії 1.1, rex для версії 1.2, bo для версій 1.3.x, hamm для версії 2.0, slink для версії 2.1, potato для версії 2.2 та woody для версії 3.0.
5.3.2 Звідки беруться всі ці імена?
Це все імена персонажів з мультика "Toy Story" компанії Pixar:
- buzz (Buzz Lightyear) був космонавтом,
- rex був тиранозавром,
- bo (Bo Peep) це дівчинка, що опікувалась кораблем,
- hamm був поросячим банком,
- slink (Slinky Dog (R)) це іграшкова собачка,
- potato це, звісно, пан Potato (R),
- woody був ковбоєм,
- sarge був сержантом Зеленої Пластикової Армії,
- etch це іграшкова класна дошка (Etch-a-Sketch (R)).
5.4 Ну то як щодо "sid"?
sid або unstable це місце куди початково завантажуються всі пакунки. Вони ніколи не додаються відразу в збірку, тому що пакунки, котрі додаються вперше, додаються в тестову версію, для того щоб бути доданими у наступну стабільну версію. sid містить пакунки як для випущеної, так і для невипущеної версії.
Ім'я sid також прийшло з "Toy Story"; так звали сусідського хлопчака, котрий ламав іграшки :о).
5.5 Що знаходиться в каталозі stable?
stable/main/
: Цей каталог містить пакунки, що складають найсвіжішу версію Debian GNU/Linux.
Всі пакунки сформовані згідно з критеріями Debian щодо вільного програмного забезпечення (DFSG) і є повністю готовими до вживання та поширення.
stable/non-free/
: Цей каталог містить пакунки, поширення яких обмежується в спосіб, що вимагає від поширювача дотримуватись спеціальних умов.
Наприклад, деякі пакунки поширюються під ліцензіями, що забороняють комерційне поширення. Інші можуть поширюватись, але як умовно-безкоштовне, а не вільне програмне забезпечення. Ліцензії всіх цих пакунків повинні бути детально вивченими та, можливо, узгодженими, перш ніж їх додати у якусь збірку (наприклад, на КД).
stable/contrib/ : Цей каталог містить пакунки, що є вільними з точки зору DFSG та можуть вільно поширюватись самі по собі, але якимось чином залежать від пакунків, що не можуть поширюватись вільно і таким чином знаходяться у секції non-free.
5.6 Що міститься в каталозі testing?
Пакунки переносяться в каталог testing після того, як пройдуть деякі етапи тестування в unstable. Вони мусять узгоджуватись з усіма архітектурами, у які їх будуть переносити та повинні не мати залежностей, що зроблять їх непридатними до встановлення; вони також повинні мати якомога менше критичних помилок. Таким чином ми сподіваємось, що "testing" достатньо готовий щоб бути кандидатом до випуску.
Додаткову інформацію про статус "testing" в цілому та кожного пакунка зокрема можна отримати на http://www.debian.org/devel/testing.
5.6.1 Як щодо "testing"? Чому він "заморожується"?
Як тільки тестова збірка стає достатньо зрілою, керівник випуску "заморожує" її. Звичайне розповсюдження сповільнюється та подовжується щоб переконатись, що з нестабільної збірки в тестову перейшла мінімальна кількість помилок.
Через деякий час тестова збірка стає насправді "замороженою". Це означає, що всі нові пакунки, які додаються до тестової версії, повертаються назад до тих пір, поки вони містять критичні помилки. Тестова збірка може залишатись у такому замороженому режимі під час так званого "тестового циклу", аж поки випуск не стає неминучим.
Ми ведемо список помилок, котрі можуть затримати випуск якось пакунка, або ж таких, що можуть затримати випуск цілої системи. За деталями зверніться до інформації про поточний тестовий випуск (http://www.debian.org/releases/testing/default.htm).
Як тільки кількість помилок опускається до прийнятних величин, заморожена тестова збірка оголошується стабільною та випускається з номером версії.
З кожним новим стабільним випуском попередній стає застарілим та поміщається в архів. За додатковою інформацією зверніться до архіву Debian.
5.7 Що містить каталог unstable?
Каталог unstable містить знімок поточної розроблюваної системи. Користувачів запрошують використовувати та перевіряти ці пакунки, але попереджують про їхній стан готовності. Переваги використання нестабільної версії в тому, що ви завжди знаходитесь на вістрі індустрії програмного забезпечення GNU/Linux, але якщо щось зламається: you get to keep both parts :-)
В каталозі unstable також є підкаталоги main, contrib і non-free, розділені за тими ж критеріями, що й в "stable".
5.8 Що то за каталоги всередині dists/stable/main?
Всередині кожного основного дерева каталогів є три набори підкаталогів що містять індексні файли. Один набір - це binary-щось, що містить індексні файли для двійкових пакунків кожної доступної архітектури, наприклад binary-i386 для пакунків, що будуть виконуватись на машинах Intel x86, чи binary-sparc для пакунків, що будуть виконуватись на робочих станціях Sun SPARCStations.
Повний список доступних архітектур для кожного випуску доступний на веб-сторінці, що присвячена випуску (http://www.debian.org/releases/default.htm). Для поточного випуску перегляньте розділ 3.1. Індексні файли у binary-* називаються Packages(.gz) і містять резюме для кожного двійкового пакунку, що включений у збірку. Поточні двійкові пакунки (для woody та наступних випусків) знаходяться на верхньому рівні каталогу pool (параграф 5.10).
Окрім того є каталог, що називається source/, що містить індексні файли для джерельних пакунків, включених у збірку. Індексний файл називається Sources(.gz).
І останнє, але не менш важливе - є набір підкаталогів, призначених для встановлювальних системних індексних файлів. У випуску woody вони називаються disks-архітектура; в sarge - debian-installer/binary-архітектура.
5.9 А де джерельні коди?
Джерельний код в системі Debian включається для всього. Більше того, ліцензійні положення більшості програм у системі вимагають, щоб разом з програмою розповсюджувався джерельний код, або ж пропонують це робити.
Джерельні коди збираються у каталозі pool (дивись параграф 5.10) разом з усіма архітектурно-специфічними каталогами. Щоб отримати джерельний код не знайомлячись з структурою FTP-архіву, спробуйте команду на кшталт
apt-get source назва_пакунка
Деякі пакунки поширюються винятково у джерельних кодах із-за обмежень у їхніх ліцензіях. В першу чергу це стосується pine (дивись параграф 4.10).
Джерельні коди можуть і не бути доступними для пакунків, що розташовані у каталогах contrib та non-free, що не є частиною системи Debian.
5.10 Що за каталог - pool?
Пакунки зберігаються у величезному сховищі (pool), сруктурованому по імені джерельного пакунка. Щоб зробити це діло керованим, сховище поділяється по секціях ("main", "contrib" та "non-free") та по перших літерах назв джерельних пакунків. Ці каталоги містять декілька файлів: двійкові пакунки для кожної архітектури та джерельні пакунки, з котрих формуються двійкові.
Ви можете дізнатись місцезнаходження кожного пакунка виконавши команду
apt-cache showsrc назва_пакунка
та подивившись на рядок "Directory:". Наприклад, apache знаходиться у каталозі pool/main/a/apache. Окрім того, оскільки пакунків lib* є дуже багато, вони розглядаються особливим чином: наприклад, пакунок libpaper знаходиться у каталозі pool/main/libp/libpaper.
5.11 Що таке incoming?
Після того, як розробник завантажив пакунок, він деякий час знаходиться в "incoming", перш ніж буде перевірений, що він справжній і доданий у архів.
Як правило, ніхто нічого не може встановити сюди, проте, у деяких рідкісних надзвичайних ситуаціях вхідний каталог доступний за адресою http://incoming.debian.org/. Ви можете вручну зкачувати пакунки, перевіряти PGP сигнатури та md5 суми у файлах .changes i .dsc і встановлювати їх.