Темы для экзамена по курсу «Сопровождение пакетов в Linux»
- Дистрибутив ОС на основе свободного ПО 
- Что такое СПО
 - Принципы формирования свободного сообщества
 - Структура свободного сообщества
 - Определение дистрибутива (любое разумное)
 - Хранилище
 
 - Пакет как составная часть дистрибутива 
- FHS
 - Пакет-дистрибутив, пакет-дерево каталогов и пакет-архив (3 подхода)
 - Возможности пакета-архива (FHS, регистрация в системе, служебные сценарии, триггеры)
 - Свойства пакета в дистрибутиве (зависимости, конфликты, альтернативы)
 - Причины возникновения зависимостей; зависимости и разноверсица
 - Виды зависимостей
 - Установщик пакета (rpm)
 - Диспетчер пакетов (apt)
 
 - Сопровождающий (maintainer) пакета 
- Структура сообщества вокруг технологической площадки (дистрибутива/хранилища)
 - Действия сопровождающего 
- Получить исходники
 - Развернуть сборочную среду
 - Создать/обновить спецификацию
 - Собрать пакет
 - Оттестировать пакет
 - Поместить пакет в хранилище
 - Реагировать на собощения об ошибках
 
 - Необходимый сопровождающему уровень знаний
 - Как записаться в майнтейнеры?
 
 - Сборка пакета 
- upstream
 - спецификация
 - сборочные зависимости и их поиск
 - заплатки
 - понятие об инструментах сборки («что такое configure; make; make install»?)
 - поиск зависимостей
 - пакет исходников (src.rpm)
 
 - Спецификация пакета («spec-файл») 
- Для чего нужен spec-файл?
 - Разделы (паспорт, развёртывание, сборка, установка, архив, changelog)
 - Макросы и зачем они нужны
 - Типичный фронт работ в борьбе с upstream: пути, разноверсица, сборка/установка из-под root
 
 - Изолированная среда сборки 
- Недостатки configure; make; make install
 - Недостатки сборки в базовой системе с помощью сборщика (rpm)
 - Защищённость, воспроизводимость и системная независимость изолированной сборки
 - Hasher как пример среды изолированной сборки
 - Недостатки hasher
 
 - Выкладывание пакета в хранилище и обратная связь с пользователями 
- Путь пакета в хранилище после его сборки сопровождающим на своей домашней машине
 - Безопасность установки пакетов из хранилища и угрозы этой безопасности
 - Выкладывание пакета в хранилище посредством gear и git.alt
 - BTS как класс программных инструментов: цели и задачи
 - Bugzilla: разделение product и component; зависимости и дубли ошибок
 - Статус ошибки
 - Списки рассылки
 - Как правильно задавать вопросы
 - Как правильно отвечать на вопросы
 
 - VCS, DVCS и GIT 
- VCS, назначение и примеры
 - Отличие VCS от DVCS (например, SVN от GIT), в т. ч. на примере организации групповой работы
 - GIT 
 Срочно требуется конспект лекции Александра Герасёва! - повседневная работа с git (pull, add, commit, push)
 - ветки и теги
 
 
 - ALT-специфичный инструментарий: gear и git.alt 
- gear: цели и задачи 
gear-update, gear-srpmimport, gear-commit
.gear/rules
- хранение исходных текстов пакета в git
 
 - git.alt: хранилище и сборочный сервер 
- как поместить пакет в хранилище
 - как отправить пакет на сборку
 - что и как управляется acl?
 - коротко о разном: 
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> 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> ...} 
 
 - gear: цели и задачи 
 
