Дебиан : локальный репозитарий пакетов на основе архива исходников филон о п iba-gomel, by,, аннотация: Рассказывается




Скачать 105.61 Kb.
НазваниеДебиан : локальный репозитарий пакетов на основе архива исходников филон о п iba-gomel, by,, аннотация: Рассказывается
Дата публикации25.03.2013
Размер105.61 Kb.
ТипРассказ
odtdocs.ru > Астрономия > Рассказ
ДЕБИАН : ЛОКАЛЬНЫЙ РЕПОЗИТАРИЙ ПАКЕТОВ НА ОСНОВЕ АРХИВА ИСХОДНИКОВ Филон О П IBA-Gomel, BY, ophil@union.gomel.by, philono@gomel.iba.by аннотация: Рассказывается краткая история создания проекта Дебьян, принципы и цели проекта, динамика роста дистрибутива и сообщества. Приводится количественная оценка объёма и стоимости проекта. Описывается устройство дистрибутива и архива Дебиан, основные команды управления пакетами, а также пример создания локального зеркала исходников Дебиан и репозитория на его основе. История Этот проект был начат Яном Мёрдоком (Ian Murdock) 16 августа 1993г. В то время само понятие "дистрибутив Линукс" ещё не существовало, а Яну к тому же пришла в голову идея организовать команду разработчиков, используя возможности глобальной Сети. К тому времени модель подобной распределённой разработки уже была опробована Ричардом Столменом [RMS] в проекте ГНЮ и Линусом Торвальдсом [Torvalds] для создания ядра Линукс. С самого начала была поставлена цель создать "народный дистрибутив" из полностью свободных программ, в духе идей созданного Р. Столменом Фонда Свободных Программ [FSF]. Ещё одной целью был упор на качество, надёжность дистрибутива - имеется в виду сведение к минимуму количества ошибок и тщательное согласование программ для совместной работы. Эти цели были изложены Яном Мёрдоком в "Манифесте Дебьян" [deb-manifesto]. По мере развития эти идеи получили воплощение в целой серии документов - социальный контракт, конституция Дебьян, многочисленные технические "policy" [policy]. Важной характеристикой этого проекта является его некоммерческая суть. Распределённость и открытость разработки подразумевает доступность дистрибутива для всех желающих. При готовности очередной версии изготавливаются CD-образы, которые можно свободно копировать и распространять. На основе Дебьяна были созданы другие дистрибутивы, в том числе коммерческие. Такой подход не помешал Дебьяну устойчиво расти прошедшие почти 15 лет. Вот некоторые количественные показатели роста: v1.1 _Buzz_, Июнь 1996г., 474 пакетов v1.2 _Rex_ Декабрь 1996г., 848 пакетов, 120 разработчиков v1.3 _Bo_ Июль 1997г., 974 пакетов, 200 разработчиков v2.0 _Hamm_ Июль 1998г., 1500+ пакетов, 400+ разработчиков v2.1 _Slink_ 09 Марта 1999г., около 2250 пакетов, 2 бинарных CD v2.2 _Potato_ 15 Августа 2000г., 6 дисков (bin+src), почти 4000 бинарных пакетов, более 450 разработчиков v3.0 _Woody_ 19 Июля 2002г, 9000+ пакетов, 900+ разработчиков v3.1 _Sarge_ 6 Июня 2005г, 15000+ пакетов, 1400+ разработчиков v4.0r3 _Etch_ 17 Февраля 2008г, 18000+ пакетов, 1600+ разработчиков Также стабильно росла всемирная сеть зеркал архива Дебьян, поддержка кроме первоначальной архитектуры Intel i386 ещё более 10 аппаратных платформ. Проект Дебьян постепенно обрёл юридическое воплощение в форме неприбыльной организации SPI (Software for Public Interest Inc.)[SPI]. Эта организация представляет интересы сообщества Дебьян и ещё нескольких программных проектов, принимает и распределяет дотации деньгами и аппаратурой. Сообщество Процесс разработки Дебьян с самого первого дня был открытым и распределённым. Участники проекта координировали свои действия через и-нет, постепенно создавая уникальное сообщество разработчиков - виртуальную республику с собственной конституцией, избранным народом лидером, со своими вполне реальными традициями и законами. Кроме официальных разработчиков, сопровождающих программные пакеты, в это сообщество входит также огромная армия активных пользователей дистрибутива Дебьян. Любой обнаруживший ошибку может сообщить о ней, используя систему учета ошибок Bug Tracking System [BTS]. Существует более 180 списков рассылки, их перечень и архив сообщений доступны на специальном сервере [lists]. На рабочей встрече "Свободное программное обеспечение", прошедшей в конце ноября 2001г. в Москве с докладом "Конституционная анархия Debian" выступили два разработчика - Петя Новодворский и Вартан Хачатуров [anarchy]. В этом докладе идёт речь о проблемах, возникающих при координации такого глобального проекта с таким количеством участников, и способах их решения. Подробно рассказан процесс включения пакета в дистрибутив и программиста в команду разработчиков. Ещё один взгляд на проект представлен в исследовании группы учёных из Universidad Rey Juan Carlos de Madrid [sarge-count]. В этой работе предпринята попытка приблизительно оценить стоимость труда, затраченного разработчиками, при использовании тех же оценок стоимости строки кода и производительности труда, которые применяются при оценке традиционной закрытой разработке. Оценка для дистрибутива v3.1 "Sarge" составила ~230 млн. строк кода, около 60 тыс. Человеко-лет и ~8 млрд. долларов США (по методу [COCOMO]). Но, как уже упоминалось, проект Дебьян изначально некоммерческий, и этот колоссальный труд и высочайшая квалификация являются результатом совершенно иных, неденежных стимулов. Среди талантливейших разработчиков, внесших свой вклад в проект Дебьян, нужно упомянуть прежде всего избираемых на основе голосования лидеров проекта. Ян Мёрдок, основатель и бессменный лидер с августа 1993г. по март 1996г. Брюс Перенс (Bruce Perens), с марта 1996г. по декабрь 1997г. Ян Джексон (Ian Jackson), с января 1998г. по декабрь 1998г. Викерт Аккерман (Wichert Akkerman), с января 1999г. по март 2001г. Бен Коллинс (Ben Collins), с апреля 2001г. по апрель 2002г. Бдейл Гарби (Bdale Garbee), с апреля 2002г. по апрель 2003г. Мартин Михльмайр (Martin Michlmayr), с март 2003г. по март 2005г. Бранден Робинсон (Branden Robinson), с апреля 2005г. по апрель 2006г. Энтони Таунс (Anthony Towns), с апреля 2006г. по апрель 2007г. Сэм Хоцевар (Sam Hocevar), с апреля 2007г. по апрель 2008г. Стив Макинтайр (Stive McIntyre), с апреля 2008г. Звание лидера проекта не даёт особых привилегий, но является отражением степени авторитета данного разработчика, его видения и вклада в проект. Невозможно рассказать обо всех разработчиках, но могу подсказать, как можно получить список этой уникальной команды, и заодно выстроить его по такому критерию, как количество сопровождаемых пакетов - см. статью [этюд-о]. Упомянутый дистрибутив v2.2, выпущенный в августе 2000г., содержал посвящение одному из разработчиков - Joel 'Espy' Klecker, тяжело болевшему и умершему в возрасте 21 год. Обязательно найдите и прочтите это посвящение - судьба 'Espy' позволяет лучше понять и почувствовать, что же такое сообщество Дебьян и из каких людей оно состоит. Дистрибутив Основой дистрибутива Дебьян является собственный формат пакетов и программа управления ими - соответственно deb и dpkg. Вместе с набором файлов, составляющих пакет программ, в архив пакета включены сценарии, выполняемые до и после установки, а также перед и после удаления пакета. В базе данных информации о пакете хранится список зависимостей этого пакета от других. Такая развитая система управления пакетами позволяет легко добавлять и удалять отдельные пакеты, сохраняя полный контроль над системой. Над программой dpkg со временем появились оболочки более высокого уровня, предоставляющие пользователю дополнительные удобства. Наиболее продвинутой стала программа apt-get, могущая, помимо прочего, проапгрейдить весь дистрибутив, или скачать из архива необходимые исходники, собрать и поставить нужную программу. Apt-get уже позаимствовали другие дистрибутивы, основанные на другом формате пакетов, rpm. В Дебьян сейчас входят на самом деле не один, а сразу три дистрибутива. Первый, т.н. стабильный, понемногу меняется с первого релиза в августе 2000г., в настоящий момент это v4.0r3. Развитие этой версии не происходит, только исправляются обнаруженные ошибки и затыкаются открытые дыры в защите. Бурное, не прекращающееся ни на один день развитие происходит в т.н. нестабильном дистрибутиве, кодовое имя sid. В него постоянно добавляют новые пакеты, свежие версии старых программ, правят всё, что сочтут нужным разработчики. Как следствие, вносятся и новые ошибки. Для желающих иметь постоянно развиваемый, но более стабильный дистрибутив, был создан промежуточный, т.н. тестовый дистрибутив woody. В него включают версии пакетов, которые за две-три недели в unstable не обнаружили серьёзных ошибок и не вызвали ошибок в других пакетах. Благо, организация архива позволяет иметь несколько версий одного и того же пакета. Перед выпуском релиза - новой стабильной версии Дебьян, происходит т.н. заморозка, freeze. На некоторое время развитие дистрибутива прекращается, все силы разработчиков направляются на устранение ошибок и замечаний. Как уже упоминал, постоянно работает система отлова и учёта ошибок [BTS]. Увы, ошибки при программировании вещь неизбежная, а в таком глобальном проекте их число уже перевалило за сотню тысяч. Увлекательным событием для разработчиков становится проводимые время от времени особые уикенды - Bug Squash Party. В реальном времени, общими усилиями, ловятся и безжалостно уничтожаются сотни багов. Ошибкам присваиваются разные уровни приоритетов, для готовности релиза стараются свести к минимуму т.н. release critical bugs. Впрочем, эта система работала раньше, при наличии только двух веток дистрибутива - стабильной и экспериментальной. По мере роста размера дистрибутива, см. часть 1, сроки между релизами стали непомерно увеличиваться и выходить из под контроля. Реорганизация архива и создание третьей, тестовой ветви дистрибутива, привели к тому, что ситуация стала несколько другой. Во-первых, многие важные пакеты со стажем, включённые с самых ранних версий, мало подвержены влиянию перемен и показывают хорошую стабильность во всех версиях. Во-вторых, количество пакетов, размер дистрибутива и пользовательская база неизмеримо выросли. Не только проект Дебьян, весь мир Линукс живёт теперь в другом темпе, обновления происходят постоянно. Так что ожидать полной стабилизации бесполезно, нужно как-то научиться жить в этом темпе, находить компромисс между стабильностью и новизной. Архив В качестве решения этой проблемы - безостановочная гонка версий и постоянное исправление ошибок - предлагается создать местное зеркало архива Дебьян и настроить средства разработки. С декабря 2000г. архив Дебьян подвергся реорганизации и сейчас устроен в виде пула из трёх традиционных секций - main, contrib и non-free, далее разбит на каталоги по начальной букве (для lib* - по 4 первым буквам), и на третьем уровне - каталоги с названием пакета. В каталоге хранятся несколько версий исходников и все версии бинарных пакетов, получающихся из этих исходников для всех аппаратных платформ. На сегодняшний день это пакеты для 11 различных архитектур. Исходники хранятся в виде 3 файлов, например: название-пакета_версия-N.diff.gz название-пакета_версия-N.dsc название-пакета_версия.orig.tar.gz Третий по счёту файл, обычно самый большой, представляет собой оригинальный архив исходников, взятый из Интернет, т.н. upstream. Это тот код и документация, которые выложили в Сеть авторы программы. Таким образом, архив Дебьян уже представляет интерес как крупнейшая коллекция исходников в Сети. В первом из файлов, с расширением .diff.gz, хранятся исправления, патч, который позволяет встроить программу в систему Дебьян, согласовать её с другими, иногда разбить единую программу на несколько пакетов. Третий маленький файлик .dsc представляет собой описание пакета, содержит некоторые поля для программы управления пакетами, а также контрольные суммы и подпись сопроводителя. Для программ, созданных специально для Дебьян, файла diff.gz нет, а тарбол (файл-архив) называется имя-пакета_версия.tar.gz Для каждой из версий исходников и для каждой из 11 программно-аппаратных платформ в каталоге пакета хранятся также откомпилированные бинарные пакеты, например название-пакета_версия_i386.deb для архитектуры i32. В исследовании [potato-count], приведены соотношения между объемом upstream кода и кодом, добавленным или исправленным сопроводителями пакета. Из приведенного анализа видно, что из ~55 млн. строк кода, составляющих potato, только ~1/10 часть добавлена сопроводителями пакета. Это вполне согласуется с наблюдением, что .diff.gz в среднем гораздо меньше по объёму и изменяется, как правило, чаще, чем upstream tarball. При каждом изменении исходников происходит перекомпиляция всех бинарных пакетов. Но самое важное качество свободных программ - доступность исходников, подсказывает нам, что получение бинарного пакета можно сделать на месте, не загружая канал связи. Во многих случаях, все архитектуры компилить нет необходимости, так что достаточно настроить место разработчика для самой распространённой у нас архитектуры i386. Но даже с учётом приведенных соображений, задача синхронизации локального зеркала архива Дебьян требует точной настройки и, как минимум, выделенного канала на 32 KB/сек. Расскажу поподробнее, как организовано зеркалирование архива Дебьян, реализованное в своё время в нескольких организациях, использующих сервера на основе Линукс. Для отслеживания изменений и выполнения копирования используется пакет mirror v2.9. Этот большой перловый скрипт позволяет получить список файлов на сервере из заархивированного листинга ls-lR.gz, сравнить с имеющимся в локальном зеркале. Но самое главное, с помощью перловых регулярных выражений можно тщательно настроить список выкачиваемых файлов, точнее, то, что нужно исключить, а всё остальное копировать. Например, документация на многих языках для нас не очень интересна, ядро Линукса многие отслеживают отдельно, есть очень тяжёлые snapshot'ы, интересные только разработчикам. Для заинтересованных в деталях файла конфигурации программы mirror и настройки зеркалирования архива Дебьян этот файл выложен на сайте Гомельской группы пользователей Линукс [mirror.deb-src]. В итоге, после первоначального трудоёмкого выкачивания базового архива исходников объёмом более 15 GiB для дальнейшей синхронизации изменений хватает обычно нескольких ночных часов online. Разработка В Дебьян существует множество инструментов, упрощающих и облегчающих процесс получения из исходников готовых пакетов. Самым высокоуровневым является, пожалуй, уже упоминавшаяся программа apt-get. Кроме установки пакетов и обновления системы, apt-get может также служить оболочкой для вызова более низкоуровневых программ, выполняющих сборку пакетов. Если вы настроили файлы конфигурации в каталоге /etc/apt - apt.conf и sources.list, далее процесс сборки пакета выполняется вызовом 2 команд: ... $ sudo apt-get build-dep имя-пакета ... $ apt-get source -b имя-пакета Первая команда проверяет зависимости собираемого пакета от других, при необходимости выкачает и установит все необходимые программы. Вторая команда выполняет собственно сборку. Если вы захотите вмешаться в процесс сборки пакета, вы можете начать править файлы исходников, управляющие этим процессом. Эти файлы лежат в каталоге debian который создаёт и заполняет сопроводитель пакета. Подробно узнать назначение каждого из файлов, а также сам процесс построения пакетов, можно из документа [maint-guide], имеющимся в русском переводе. Этот документ доступен либо с официального сайта [debian.org], либо, как всегда, из архива в пакете maint-guide. Для сопроводителя также имеется большой выбор высокоуровневых скриптов для построения пакетов из исходников. Например, установив пакет devscripts, вы можете выполнять сборку из каталога распакованных исходников таким образом: ... $ debuild -b -uc 2>&1|tee build.log ... $ fakeroot debian/rules clean Вторая команда необязательна - она очищает каталоги от временных и производных файлов. Конечно, процесс разработки не всегда удаётся свести к двум-трём простым командам. Это происходит в том идеальном случае, к которому постоянно стремится команда разработчиков и всё сообщество Дебьян. Любые ошибки в процессе сборки для любой из 11 платформ составляют основную массу БД [BTS]. Рано или поздно серьёзному разработчику придётся зарыться вглубь программы или используемого языка программирования. Здесь давайте снова обратимся к уже дважды упоминавшемуся исследованию [sarge-count]. Среди ~230 млн. строк исходников расклад по строкам на разных языках программирования таков: C: 130,847,000 (57%) C++: 38,602,000 (16,8%) Shell: 20,763,000 (9%) LISP: 6,919,000 (3%) Perl: 6,415,000 (2.8%) Python: 4,129,000 (1.8%) Java: 3,679,000 (1.6%) FORTRAN: 2,724,000 (1.2%) PHP: 2,144,000 (0.93%) Pascal: 1,423,000 (0.62%) Ada: 1,401,000 (0.61%) Менее 0.5% количества строк относились к Objective C(0,37%), ML(0.31%), Yacc (0.29%), Ruby (0.26%), C# (0.23%), Lex (0.10%). Прочие языки набрали менне 0.1% Данный подсчёт сделан на основании дистрибутива трехлетней давности, но процентное соотношение между используемыми языками должно в основном сохраниться для текущего архива исходников. Выводы Создание локального зеркала архива Дебьян в значительной степени решает проблему ПО для корпоративной сети. Уникальная команда разработчиков и сообщество пользователей Дебьян могут во многих случаях служить в качестве бесплатной службы поддержки. Зеркалирование только исходного кода из архива свободно-доступных программ и настройка соответствующих инструментов разработки позволяет значительно повысить эффективность использования канала связи. Использование свободно-доступных программ снимает проблему легальности используемого ПО, значительно повышает надёжность и уровень защиты серверов и сети. Если принять точку зрения, выраженную в публикации [кризис ПО], локальный архив Дебьян и соответствующее переоснащение рабочих мест показывают возможность преодоления кризиса в области ПО. Участие в процессе разработки может рассматриваться как полезная практика для студентов, изучающих системное и прикладное программирование. При достаточно высокой квалификации собственных разработчиков возможно создание постоянно обновляемого и пополняемого, но достаточно стабильного дистрибутива нового типа. Современный дистрибутив, как и система обеспечения безопасности - это непрерывный процесс обновления, в котором скорость реакции на обнаруженные ошибки является одним из решающих факторов. Ссылки и библиография [RMS] Richard M. Stallman. Биография и официальная страница Ричарда М. Столмена расположены на сайте (http://www.stallman.org, www.stallman.org). Большое количество ссылок и цитат из интервью и выступлений приведены на сайте Ник. Безрукова http://www.softpanorama.org/People/Stallman/index.shtml [Torvalds] Linus Torvalds. Несмотря на свою молодость и виртуальность, Линус Торвальдс в мире и особенно в Интернет, чрезвычайно популярен. На сайте Ник. Безрукова ему также посвящён отдельный каталог http://www.softpanorama.org/People/Torvalds/index.shtml [FSF] Free Software Foundation. Организация, созданная Ричардом М. Столменом [RMS] для продвижения свободных программ. Философия движения за свободу программ подробно рассказана на http://www.gnu.org [policy] FTP-архив проекта Дебьян, каталог с документацией ftp://ftp.debian.org/doc [deb-manifesto] Манифест Дебьян, написанный Яном Мёрдоком в 1994г., ftp://ftp.debian.org/ [SPI] Software for Public Interest Inc. http://www.spi-inc.org/ [debian.org] Официальный сайт проекта Дебьян, http://www.debian.org [maint-guide] Раздел документация на официальном сайте, руководство разработчика, имеется русский перевод. http://www.debian.org/doc/maint-guide/ [BTS] Bug Tracking System http://www.debian.org/Bugs/ [lists] Архив списков рассылки, подписка, статистика, http://lists.debian.org [anarchy] Петя Новодворский, Вартан Хачатуров, "Конституционная анархия Debian", доклад на рабочей встрече "Свободное программное обеспечение". http://gomelug.agava.ru/articles/anarchy.html [sarge-count] Jesus M. GonzАlez-Barahona и др., Measuring Libre Software Using Debian 3.1 (Sarge), http://www.upgrade-cepis.org/issues/2005/3/up6-3Amor.pdf [COCOMO] Boehm, Barry. 1981. Software Engineering Economics. Englewood Cliffs, N.J.: Prentice-Hall, Inc. ISBN 0-13-822122-7. [potato-count] Jesus M. GonzАlez-Barahona и др., Исследование количественных показателей дистрибутива Debian Potato v2.2, http://people.debian.org/~jgb/debian-counting/ [mirror.deb-src] Файл конфигурации программы mirror v2.9, настроенный для копирования исходного кода всех пакетов из архива Дебьян. http://gomelug.agava.ru/articles/mirror.deb-src [этюд-о] Олег П. Филон, статья "Этюд о героях невидимого фронта" http://gomelug.agava.ru/articles/sketch_o_heroes.html [кризис ПО] Олег П. Филон, статья "Кризис в программном обеспечении и способы его преодоления" http://gomelug.agava.ru/articles/crisis_prog.html

Добавить документ в свой блог или на сайт

Похожие:

России в качестве учебного пособия для студентов, обучающихся по...
Аннотация. Аннотация. Аннотация. Аннотация. Аннотация. Аннотация. Аннотация.

Текст тематической экскурсии по документам архива
Многие документы нашего архива лишь недавно были рассекречены, поэтому у нас вы можете узнать о войне то, о чем еще не писали историки...

Акция «Мой имидж не совместим с разбрасыванием целлофановых пакетов!»

Тема: Ю. Коваль «Соловьи»
Пронумеруйте события в том порядке, в каком о них рассказывается в тексте. Номер 1 уже поставлен

Руководство java разработчика il-2 FreeHost
Прото разархивируйте в какую-либо папку содержимое архива и еклипс готов к работе

Разработано с использованием программы "Гектор: Сметчик-строитель"...
Ремонт мягкой кровли 200м2 части здания литера кн1 районной котельной рк-8 ОАО «тэсс», расположенной по адресу : Ярославская обл.,...

Информационная справка о школе
Школа основана в 1910 г. (Справка Тамбовского архива №5138/12) Место нахождения оу

Рассказы про труд для детей
В них рассказывается о том, что важно в жизни выбрать достойное и нужное дело, честно и добросовестно учиться и работать

Список учреждений, организаций и предприятий- источников комплектования...
Отдел сбора и обработки статистической информации Курганстата в Мишкинском районе

Административный регламент
«Организация комплектования Юргамышского муниципального архива документами Архивного фонда Российской Федерации и другими архивными...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница