Темы для экзамена по курсу «Сопровождение пакетов в Linux»

  1. Дистрибутив ОС на основе свободного ПО
    • Что такое СПО
    • Принципы формирования свободного сообщества
    • Структура свободного сообщества
    • Определение дистрибутива (любое разумное)
    • Хранилище
  2. Пакет как составная часть дистрибутива
    • FHS
    • Пакет-дистрибутив, пакет-дерево каталогов и пакет-архив (3 подхода)
    • Возможности пакета-архива (FHS, регистрация в системе, служебные сценарии, триггеры)
    • Свойства пакета в дистрибутиве (зависимости, конфликты, альтернативы)
    • Причины возникновения зависимостей; зависимости и разноверсица
    • Виды зависимостей
    • Установщик пакета (rpm)
    • Диспетчер пакетов (apt)
  3. Сопровождающий (maintainer) пакета
    • Структура сообщества вокруг технологической площадки (дистрибутива/хранилища)
    • Действия сопровождающего
      1. Получить исходники
      2. Развернуть сборочную среду
      3. Создать/обновить спецификацию
      4. Собрать пакет
      5. Оттестировать пакет
      6. Поместить пакет в хранилище
      7. Реагировать на собощения об ошибках
    • Необходимый сопровождающему уровень знаний
    • Как записаться в майнтейнеры?
  4. Сборка пакета
    • upstream
    • спецификация
    • сборочные зависимости и их поиск
    • заплатки
    • понятие об инструментах сборки («что такое configure; make; make install»?)
    • поиск зависимостей
    • пакет исходников (src.rpm)
  5. Спецификация пакета («spec-файл»)
    • Для чего нужен spec-файл?
    • Разделы (паспорт, развёртывание, сборка, установка, архив, changelog)
    • Макросы и зачем они нужны
    • Типичный фронт работ в борьбе с upstream: пути, разноверсица, сборка/установка из-под root
  6. Изолированная среда сборки
    • Недостатки configure; make; make install
    • Недостатки сборки в базовой системе с помощью сборщика (rpm)
    • Защищённость, воспроизводимость и системная независимость изолированной сборки
    • Hasher как пример среды изолированной сборки
    • Недостатки hasher
  7. Выкладывание пакета в хранилище и обратная связь с пользователями
    • Путь пакета в хранилище после его сборки сопровождающим на своей домашней машине
    • Безопасность установки пакетов из хранилища и угрозы этой безопасности
    • Выкладывание пакета в хранилище посредством gear и git.alt
    • BTS как класс программных инструментов: цели и задачи
    • Bugzilla: разделение product и component; зависимости и дубли ошибок
    • Статус ошибки
    • Списки рассылки
    • Как правильно задавать вопросы
    • Как правильно отвечать на вопросы
  8. VCS, DVCS и GIT
    • VCS, назначение и примеры
    • Отличие VCS от DVCS (например, SVN от GIT), в т. ч. на примере организации групповой работы
    • GIT
      • /!\ Срочно требуется конспект лекции Александра Герасёва!

      • повседневная работа с git (pull, add, commit, push)
      • ветки и теги
  9. 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> ...}

LecturesCMC/PackageMaintaining2009/Exam (last edited 2009-12-20 16:00:02 by FrBrGeorge)