Product SiteDocumentation Site

1.3. Внутреннее устройство Проекта Debian

Многочисленные результаты, создаваемые Проектом Debian, одновременно возникают благодаря работе над инфраструктурой, выполняемой опытными разработчиками Debian, благодаря индивидуальной и совместной работе разработчиков над пакетами Debian и благодаря отклику пользователей.

1.3.1. Разработчики Debian

Разработчики Debian имеют различные обязанности, а как официальные члены проекта они оказывают очень сильное влияние на направление развития проекта. Обычно разработчик Debian ответственен за хотя бы один пакет, но в соответствии с имеющимся временем и желанием он может принять участие во множестве команд, получив тем самым больше обязанностей в проекте.
Сопровождение пакетов является относительно регламентированной деятельностью, оно хорошо документировано и даже строго регулируется. В результате, пакет должен соответствовать стандартам, устанавливаемым Политикой Debian. К счастью, существует множество инструментов, которые облегчают работу сопровождающего. Таким образом, разработчик может сконцентрироваться на особенностях своего пакета и на более сложной задаче, например, на исправлении ошибок.
Политика, существенный элемент Проекта Debian, определяет нормы, гарантирующие качество пакетов и операционную совместимость самого дистрибутива. Благодаря Политике Debian остаётся упорядоченным несмотря на свой гигантский размер. Политика не зафиксирована в камне, но постоянно развивается благодаря предложениям, формулируемым в списке рассылки . Улучшения, с которыми согласны все заинтересованные стороны, принимаются и добавляются в текст небольшой группой сопровождающих, у которых нет редакторских прав (они лишь добавляют изменения, которые были утверждены разработчиками Debian, которые являются участниками указанного списка рассылки). Вы можете прочесть текущие предложения улучшений в системе отслеживания ошибок:
Политика описывает большую часть технических аспектов процесса создания пакетов. Тем не менее, размер проекта приводит к возникновению в том числе и организационных проблем; эти проблемы решаются с помощью Конституции Debian, которая определяет структуру проекта, а также средства принятия решений. Другими словами, это формальная система управления проектом.
Конституция определяет ряд ролей и должностей, а также ответственности и полномочия каждой их них. Особенно следует заметить, что разработчики Debian всегда имеют полномочия принятия окончательного решения путём общего решения, в котором для внесения существенных изменений (например, изменения основополагающих документов) требуется квалифицированное большинство из трёх четвёртых (75%) голосов. Тем не менее, ежегодно разработчики выбирают «лидера», который представляет проект на различных мероприятиях и гарантирует внутреннее взаимодействие между различными командами. Эти выборы всегда представляют собой период интенсивных обсуждений. Эта роль лидера формально не определена ни одним документом, кандидаты на этот пост обычно предлагают своё собственное видение этой должности. На практике роль лидера предполагает представление проекта средствам массовой информации, координацию между «внутренними» командами, общее управление проектом, в котором участвуют и разработчики (взгляды DPL имплицитно принимаются большинством членов проекта).
Как правило, у лидера имеется реальная власть; его голос разрешает ситуации с равным числом голосов; он может принимать любое решение, которое пока ещё не относится к полномочиям кого-либо ещё, а также может делегировать часть своей ответственности.
С момента его рождения проектом последовательно руководили Иэн Мёрдок, Брюс Перенс, Ян Джексон, Вихерт Аккерман, Бэн Коллинс, Бидейл Гарби, Мартин Михльмайер, Брендан Робинсон, Энтони Таунс, Сэм Осевар, Стив Макинтайр, Стефано Дзаккироли и Лукас Нуссбаум.
Также Конституция определяет «технический комитет». Основная роль комитета заключается в разрешении технических вопросов в том случае, когда участвующие в обсуждении разработчики не могут достичь согласия. Кроме того, этот комитет играет совещательную роль для любого разработчика, кто не может самостоятельно принять решение по какому-то вопросу, за который он отвечает. Важно отметить, что комитет включается в работу только в том случае, когда его к этому приглашает одна из сторон дискуссии.
Наконец, Конституция определяет должность «секретаря проекта», который несёт ответственность за голосование в ходе различных выборов и общих решений.
Процедура «общего решения» подробно описывается в Конституции, описание затрагивает как период первоначального обсуждения, так и окончательный подсчёт голосов. Подробности см. на странице
Несмотря на то, что Конституция обеспечивает видимость демократии, реальность совсем не та. Естественным образом Debian следует правилам Свободного ПО, заключающимся в дуократии: тот, кто что-то делает, тот и решает, как это делать. Большое количество времени может быть потеряно на обсуждение соответствующих положительных черт различных способов решения какой-то проблемы; избранное решение будет одновременно и функциональным, и подходящим всем... что потребует гораздо большего количества времени, чем в решение этой проблемы может вложить компетентный человек.
Звёздочки можно заработать только одним способом: нужно сделать что-то полезное и показать, что оно хорошо работает. Многие «административные» команды Debian действуют методом кооптации, предпочитая добровольцев, которые уже внесли оптимальный вклад и доказали свою компетентность. Публичность работы таких команд позволяет новым участникам наблюдать за работой и начинать оказывать помощь без каких-либо специальных привилегий. Вот почему Debian часто описывается как «меритократия».
Этот эффективный рабочий метод гарантирует качество участников «ключевых» команд Debian. Этот метод далёк от совершенства, иногда встречаются те, кто не принимает такой способ работы. Отбор разработчиков в команды может казаться произвольным или даже нечестным. Более того, не у всех имеется сходное определение того, что следует ожидать от этих команд. Для некоторых неприемлемо ждать включение нового пакета Debian в архив в течении восьми дней, хотя другие без особых проблем терпеливо ждут и три недели. Таким образом, по поводу «качества обслуживания», предоставляемого некоторыми командами, регулярно высказываются жалобы.

1.3.2. Активная роль пользователей

Возникает вопрос, уместно ли указывать пользователей среди тех, что работают в Проекте Debian. Ответ на этот вопрос определённо положительный: пользователи играют в Проекте критическую роль. Будучи вовсе не «пассивными» пользователями, некоторые из них используют разрабатываемые версии Debian и регулярно сообщают об ошибках и проблемах. Другие пользователи идут ещё дальше и предлагают свои идеи улучшений, отправляя отчёты об ошибках уровня "wishlist" или предлагая исправления исходного кода, называемые «заплатами» (см. боковую панель К ОСНОВАМ Заплата, способ отправить исправление).
Кроме того, многочисленные довольные пользователи тех сервисов, которые предлагаются Debian, хотят внести свой вклад в Проект. Поскольку не все обладают соответствующим уровнем знаний в области программирования, они могут помочь с переводами и проверкой документации. Для координации такой работы имеются специальные списки рассылки для конкретных языков.
Все эти механизмы участия становятся более эффективными благодаря пользователям. Не будучи собранием изолированных индивидов, пользователи представляют собой настоящее сообщество, внутри которого постоянно происходят различные взаимодействия. Мы особенно выделяем впечатляющую активность в пользовательском списке рассылки, Глава 7, Решение проблем и поиск необходимой информации содержит более подробное описание).
Пользователи не только помогают сами себе (и другим) в решении технических проблем, которые касаются их самих непосредственно, но они ещё обсуждают наилучшие способы участия в Проекте Debian и помощи в его движении дальше — обсуждения, которые часто приводят к предложениям улучшений.
Поскольку Debian не тратит деньги на маркетинговые и рекламные компании, пользователи дистрибутива играют главную роль в его продвижении, распространяя славу о нём из уст в уста.
Этот метод работает весьма неплохо, так как энтузиасты Debian находятся на любом уровне сообщества свободного ПО: на вечерниках по установке (практических сессиях, на которых опытные пользователи помогают новичкам установить систему), организуемых локальными LUG (от англ. Linux User Groups - группами пользователей Linux) до стендов на крупных технических выставках, посвящённых Linux и т.д.
Добровольцы создают для Проекта постеры, брошюры, наклейки и другие полезные рекламные материалы, которые доступны для всех, и которые Debian свободно предоставляет на своём веб-сайте:

1.3.3. Команды и подпроекты

Debian с самого начала был организован вокруг концепции пакетов с исходным кодом, у каждого из которых имеется свой сопровождающий или группа сопровождающих. Со временем для обеспечения администрирования инфраструктуры и выполнения задач, которые не связаны с каким-то отдельным пакетом (контроль качества, Политика Debian, программа установки и т. д.), появились многие рабочие команды, последние из которых вырастают вокруг подпроектов.

1.3.3.1. Существующие подпроекты Debian

Каждому свой собственный Debian! Подпроект — группа добровольцев, заинтересованных в адаптации Debian под конкретные нужды. Помимо выбора подгруппы программ, предназначенных для определённой области (образование, медицина, создание музыки и проч.) подпроекты также участвуют в улучшении существующих пакетов, создают пакеты для отсутствующего в архиве ПО, адаптируют программу установки, создают специальную документацию и занимаются многими другими вещами.
Ниже приведена небольшая выборка текущих подпроектов:
  • Debian-Junior, разрабатываемый Бэном Армстронгом, предлагает привлекательную и простую в использовании для детей систему Debian;
  • Debian-Edu, разрабатываемый Петтером Райнхолдсеном, концентрируется на создании специализированного дистрибутива для академического мира;
  • Debian-Med, разрабатываемый Андреасом Тилле, посвящён медицине;
  • Debian Multimedia, который касается работы с аудио и мультимедиа;
  • Debian-Desktop, который фокусируется на настольных компьютерах и координирует разработку оформления темы по умолчанию;
  • Debian GIS, который заботится о приложениях и пользователях геоинформационных систем;
  • наконец, Debian Accessibility улучшает Debian с целью его подгонки под требования людей с ограниченными возможностями.
Скорее всего этот список продолжит со временем расти, а также расти благодаря улучшению восприятия преимуществ подпроектов Debian. Полностью поддерживаемые существующей инфраструктурой Debian, они могут, в конце концов, сконцентрироваться на работе с реальной добавочной стоимостью, не заботясь о синхронизации с Debian, поскольку они разрабатываются внутри Проекта.

1.3.3.2. Административные команды

Большинство административных команд относительно закрыты и набирают новых участников по принципам кооптации. Наилучшим способом стать частью такой команды является грамотная помощь текущим членам команды, которая доказывает, что вы понимаете их задачи и методы работы.
Команда ftp-мастеров ответственная за официальный архив пакетов Debian. Они сопровождают программу, которая получает пакеты, отправленные разработчиками, и автоматически сохраняет их после некоторых проверок на соответствующем сервере (ftp-master.debian.org).
Также они должны проверять лицензии всех новых пакетов до их включения в набор существующих пакетов с тем, чтобы убедиться, что Debian может их распространять. Когда разработчик хочет удалить пакет, они обращаются к этой команде через систему отслеживания пакетов и «псевдопакет» ftp.debian.org.
Команда системных администраторов Debian (DSA) (), как и ожидается, ответственна за системное администрирование многих серверов, используемых Проектом. Они гарантируют оптимальное функционирование всех базовых служб (DNS, веб, электронная почты, командная оболочка и т. д.), по требованию разработчиков Debian устанавливают ПО и предпринимают все предосторожности в плане безопасности.
Мастера списков администрируют сервер электронной почты, который управляет списками рассылки. Они создают новые списки, обрабатывают возвраты не доставленных сообщений (сообщения о неудачной доставке) и сопровождают фильтры спама (нежелательные массовые сообщения электронной почты).
Каждая конкретная служба имеет свою собственную команду администраторов, обычно она состоит из добровольцев, которые установили эту службу (и часто они же сами и написали соответствующие инструменты). Это касается системы отслеживания ошибок (BTS), системы отслеживания пакетов, alioth.debian.org (сервера FusionForge, см. боковую колонку ИНСТРУМЕНТ FusionForge, швейцарский армейский нож совместной разработки), служб, доступных на узлах qa.debian.org, lintian.debian.org, buildd.debian.org, cdimage.debian.org и т. п.

1.3.3.3. Команды разработки, трансверзальные команды

В отличие от административных команд команды разработки скорее крайне открыты, даже для внешних участников. Даже если Debian и не призван создавать ПО, Проекту требуются некоторые специальные программы для того, чтобы достичь поставленные цели. Конечно, благодаря тому, что эти инструменты разрабатываются как свободное ПО, в них используются методы, которые уже доказали свою пользу где-то ещё в обширном мире свободного ПО.
В Debian было разработано не очень много собственного ПО, но некоторые программы играют звёздные роли, а их слава распространилась далеко за пределы Проекта. Прекрасными примерами такого рода являются dpkg, программа управления пакетами Debian (фактически, это сокращение от слов Debian PacKaGe, пакет Debian, а обычно произносится как "dee-package"), и apt, инструмент для автоматической установки любого пакета Debian вместе с его зависимостями, что гарантирует целостность системы после выполнения обновления (называние этого инструмента является сокращением от Advanced Package Tool, продвинутый инструмент для работы с пакетами). Тем не менее, команды, занимающиеся разработкой этих инструментов, не настолько обширны как слава этих инструментов, поскольку для понимания работы такого типа программ требуются довольно глубокие навыки программирования.
Вероятно, самой важной командой является команда, которая занимается программой установки Debian, debian-installer, с момента своего создания в 2001 году она выполнила весьма важную работу. Команде требуются многочисленные участники, поскольку написать одну единственную программу, способную установить Debian на дюжину разных архитектур, довольно сложно. Каждая архитектура имеет свой собственный механизм загрузки и свой собственный загрузчик. Вся работа координируется через список рассылки и управляется Сирилом Брулбуа.
Другая (очень маленькая) команда, debian-cd, выполняет более скромные задачи. Множество «скромных» участников ответственно за свои отдельные архитектуры, поскольку основной разработчик не может знать всех нюансов и точного способа запустить программу установки с компакт-диска.
Многим командам при создании пакетов приходится работать вместе с другими командами: например, стремится гарантировать качество на всех уровнях Проекта Debian. Список служит для разработки Политики Debian в соответствии с предложениями от различных участников. Команды, ответственные за каждую отдельную архитектуру () собирают пакеты и при необходимости адаптируют их под конкретную архитектуру.
Другие команды следят за наиболее важными пакетами, гарантируя сопровождение этих пакетов без того, чтобы эта тяжёлая нагрузка лежала на одних плечах; это касается библиотеки C и списка рассылки , компилятора C и списка , а также Xorg и (это группа также известна как X Strike Force).