Особенности построения релиза Ubuntu на основе пакетной базы Debian GNU/Linux

Многие новички спрашивают, как Ubuntu зависит от Debian и как пакеты перетекают из одного дистрибутива в другой? Рафаэль Герцог (Raphaël Hertzog), разработчик Debian с двенадцатилетним стажем, последнее время курирующий взаимодействие между проектами Ubuntu и Debian, попытался ответить на наиболее часто задаваемые вопросы:

Откуда приходят пакеты?

Большинство пакетов создаются разработчиками Debian и загружаются в нестабильную ветку “Debian sid” (или “Debian experimental”). Новые пакеты, перед принятием их в официальный архив Debian, проходят проверку в группе “FTP-Masters”. Там пакеты хранятся в очереди “NEW” до окончания их рассмотрения, а время это колеблется от нескольких часов до нескольких месяцев (обычно они рассматриваются в течение недели или двух).

Разработчики Ubuntu импортируют все официальные пакеты Debian, но также они добавляют некоторые свои пакеты. При этом около 7% пакетов дистрибутива Ubuntu - это программное обеспечение сторонних производителей, которое было сформировано специально для Ubuntu, но не для Debian.

Какие изменения вносят разработчики Ubuntu?

Из всех пакетов, приходящих из Debian, 17% имеют дополнительные изменения, внесённые командой Ubuntu. Многие из них являются частью репозитория Ubuntu “main”, активно поддерживаемого компанией Canonical и основной группой разработчиков Ubuntu. Репозиторий “universe”, как правило, ближе к официальным пакетам Debian.

Многие изменения, внесённые командой Ubuntu, являются результатом решений принятых на саммите разработчиков Ubuntu с целью достижения конкретных результатов: обеспечения лучшего пользовательского интерфейса, уменьшения времени загрузки, улучшений платформы для сторонних разработчиков, обеспечения более плотной интеграции с онлайн-службами Canonical (Launchpad, Ubuntu One) и т.д. Другие изменения - просто результат исправления ошибок, о которых было сообщено пользователями Ubuntu.

Обратите внимание, что даже если исходные пакеты Debian включаются в репозитории Ubuntu без изменений, версии, скомпилированные для Ubuntu, будут отличаться от таковых в репозитории Debian. Это стало результатом внесения изменений в среду сборки пакетов разработчиками Ubuntu. Эти пакеты можно установить только на компьютеры с Intel-совместимыми процессорами класса 686 или новее, так как разработчики Ubuntu включают некоторые опции компилятора, которые не используются в Debian. К тому же, уже скомпилированные пакеты модифицируются программой под названием “pkgbinarymangler”.

График выпусков Ubuntu и отношения с Debian

Выпуск новой версии Ubuntu происходит каждые шесть месяцев. Debian имеет совершенно другой график выпусков. Как разработчикам Ubuntu удаётся подстраиваться под этот график?

Для Ubuntu пакеты импортируются из ветки “Debian unstable” (иногда даже из ветки “experimental”), чтобы получить новейшие версии. Если пакеты Ubuntu уже имеют изменения, специфичные для Ubuntu, эти изменения сливаются с обновлёнными пакетами Debian. В противном случае пакеты просто переносятся в Ubuntu из репозитория Debian. Это хорошо работает, так-как ветка “Debian sid” не оправдывает в полной мере своего названия, и работает на удивление хорошо. Процесс импорта пакетов из Debian в Ubuntu происходит строго в течение двух месяцев из шести, доступных при подготовке релиза Ubuntu - до “замораживания” импорта из Debian. Так что для исправления самых больших проблем остаётся ещё достаточно времени.

В течение третьего и четвёртого месяца разработки Ubuntu всё ещё можно добавлять обновлённые пакеты из Debian, но только с разрешения разработчика, а не автоматически. В конце четвёртого месяца разработки происходит полная заморозка импорта пакетов.

Два месяца, оставшихся до выпуска, посвящены исправлению ошибок и шлифовке дистрибутива. В этот период могут происходить так называемые “суб-заморозки”, их можно увидеть, например, если взглянуть на график выпуска версии Ubuntu Natty Narwhal. Добавление обновлённых пакетов Debian в этот период разработки происходит только в случае, если разработчики исправят какую-то критическую ошибку в пакете.

Источник: www.opennet.ru