8618
Комментарий:
|
8634
|
Удаления помечены так. | Добавления помечены так. |
Строка 1: | Строка 1: |
== Информация о курсе == | == Сопровождение пакетов в Linux == |
Сопровождение пакетов в Linux
Лектор: Георгий Владимирович Курячий
- В течение курса возможно проведение практических занятий по сборке пакетов
- В конце курса будет экзамен
- Спецкурс проходит по средам в 18:00 в аудитории П-12. Первая лекция — 30 сентября
Лицам, не имеющим пропуск на факультет ВМК МГУ, рекомендуется на первую лекцию принести одну матовую фотографию 3×4 и паспортные данные для оформления пропуска.
План курса
« |
Возьми консервную банку, в нужных местах пробей дырочки, продень проволоку, загни концы... Теперь приделай к этому ручку, и аппарат готов!» |
© Даниил Хармс |
- Место пакета в дистрибутиве
- Дистрибутив ОС на основе свободного ПО: принципы формирования.
- Хранилище пакетов: назначение и жизненный цикл; изготовление дистрибутивов из хранилища
- Пакет как составная часть дистрибутива: требования и особенности; понятие сборки пакета.
- Сборка пакета из исходных текстов; upstream, spec
- Сопровождение пакета в составе хранилища
- социальная составляющая, роль сообщества и личности сопровождающего
- помещение стороннего ПО в хранилище: от upsrteam до binary package
- packaging policy: цели и задачи
почему хранилище — не дистрибутив: хранилище как инструмент разработки и сизифов труд
- Технологии, облегчающие сопровождение пакета (сопровождающему и сообществу)
- Частью даются ознакомительно, так как в будущем семестре планируется прочесть курс на схожую тему
- инструменты разработчика и их использование в процессе сопровождения
- изолированная сборка; автоматизация изолированной сборки
- входное тестирование пакета и контроль собираемости хранилища
- Сборка пакета в хранилище свободного ПО Sisyphus, пошагово
Конспекты и планы лекций
Организационное собрание, посвящённое выборе темы лекций (аудиозапись)
Дистрибутив ОС на основе свободного ПО: принципы формирования (конспект) (аудиозапись)
Пакет как составная часть дистрибутива: требования и особенности; понятие сборки пакета (конспект) (аудиозапись 0, аудиозапись 1)
Сборка пакета из исходных текстов; upstream, spec (конспект) (аудиозапись)
Изолированная среда сборки (введение) (конспект) (аудиозапись)
Лекция Александра Герасёва о пакетах в GNU Debian (конспект) (аудиозапись 0, аудиозапись 1)
Составление спецификаций - II, Исправление upstream (заплатки), Помещение в хранилище, Обратная связь с upstream и сообщения об ошибках (конспект) (видеозапись)
Git (лекция А. Герасёва)
- Работа с upstream
- Tarballs
- VCS, ревизии и теги
- Составление спецификаций
- Что должно быть в spec-файле, правила оформления
- Работа с upstream
- Составление спецификаций - II
- Коротко о spec-файле
- Борьба с версиями
- Борьба с путями
- Борьба со сборочными зависимостями
- Макросы
- Исправление upstream (заплатки)
patch и diff
- Проталкивание заплаток в upstream
- Помещение в хранилище
- src.rpm
- Электронная подпись участника Team и робота-сборщика
- hasher и локальное хранилище
- Обратная связь с upstream и сообщения об ошибках
- Как правильно отвечать на вопросы
- Багзилла как пример BTS
- Product, component, priority, severity, platform, summary, full description
- патчи и обсуждения
- зависимости и дубли
- статус
- Составление спецификаций - II
Git, Gear и git.alt
- Повторение пройденного: что делает сопровождающий:
- Получить исходники
- Развернуть сборочную среду
- Создать/обновить спецификацию
- Собрать пакет
- Оттестировать пакет
- Поместить пакет в хранилище
- Ссылки
- Что надо знать:
- VCS
- Распределённая VCS: публикация и слияние вместо совместного доступа
- Ветки и теги
.gear/rules: есть документация!
- copy:, tar:, name=, base=, @name@, @version@, @release@
- Сборка пакета при помощи gear
gear-commit
gear --hasher -- hsh --apt-config=/home/george/.apt/x86_64/Sisyphus/config --lazy
gear-update
- Хранение git
- ssh git.alt:
$ ssh git.alt help Available commands: help charset <path to git repository> [<charset>] clone <path to git repository> [<path to directory>] default-branch <path to git repository> [<branch>] find-package <pattern> init-db <path to directory> ls [<path to directory>] mv-db <path to source directory> <path to destination directory> quota repack <path to git repository> [<value>] rm-db <path to git repository> task {--help|ls|show|new|add|delsub|run|share|approve|rm} ... build [-b <binary_repository_name>] <gear_repo_1> <gear_tag_1> ... acl {--help|<binary_repository_name> ...}
- Сборка из хранилища
$ git push && gear-create-tag && git push origin --tags && ssh git.alt build `basename $PWD` `git describe`
- ACL: show check add/del replace leader nmu
- Task, shared task
- Повторение пройденного: что делает сопровождающий:
- Полный цикл сборки пакета из upstream (раассказ)
- Эффективные инструменты сопровождения пакетов:
- Адаптация к системам разработки в upstream (autotools, *make и т. п.)
- Адаптация к различным ЯП
- Поиск зависимостей и сборочных зависимостей
- Умолчания (триггеры, обязательные действия, пути)
- Хранение исходных текстов и заплаток (git.alt, gear)
- Совместная модификация пакета (git.alt, gear)
- Автоматическая сборка (git.alt, git.alt)
- Контроль качества (sisyphus-check, repocop, QA)
- Полный цикл сборки пакета из upstream (практика)
Материалы
CategoryUneex CategoryLectures CategorySpecCourse CategoryCmc