Установка и пакетирование

Про установку посмотрим в процессе пакетирования.

Основания свободной дистрибуции

Свободное лицензирование
Условия распространения исходного и модифицированного ПО
  1. Право на использование
  2. Право на изучение и модификацию (⇒ доступ к исходному тексту)
  3. Право на распространение
  4. Право на распространение модифицированных версий

Обратите внимание:

⇒ Ещё один пункт, т. н. Копилефт — сохранение свободности лицензии:

  1. Лицензия, под которой распространяется производный продукт, должна соответствовать всем пяти пунктам исходной лицензии (⇒ доступ к исходному тексту)

Это основание для того, чтобы 24/7 составлять сборник модифицированного ПО.

Открытая разработка

Дисциплина разработки ПО, требующая участия сообщества

  • Цель: разработка ПО :)

  • Задача: привлечение и мотивация сообщества к разработке
    • Упрощённая процедура входа/выхода в сообщество (только профессиональная градация, да и то умеренно)
    • Информационно-техническое пространство (Wiki/списки рассылки/SN — Bugzilla/Сборочница)
    • Поощрение распространения и использования в личных целях ⇒ свободное лицензирование
    • Особая дисциплина разработки
      • DVCS
      • С упором на «личное удобство»
      • С упором на «удобство для сообщества»

Пакеты и дистрибутивы

«Дистрибутив ОС» — это

Репозиторий

Пакет

Целая лекция только про пакеты

Сборка пакета

Пакет (быстренько):

Всё это подаётся на вход сборщику (ALT: rpm-build).

Живая сборка обновления пакета:

В этом году на примере yad

  1. Новый апстримный исходник
  2. Исправление спека
  3. Попытка сборки (с наложением патчей)
  4. Исправление отвалившихся патчей
  5. Исправление собственных исходников
    • например, перевода: make update-po ; msgfmt --statistics ru.po

  6. Ещё исправление спека, если нужно (например, новые файлы)
  7. …и так по кругу

Посмотреть автовычесленные зависимости.

Тестирование пакета.

Сопровождающий (майнтейнер) пакета
Человек из сообщества, который всё это делает, а ещё взаимодействует с апстримом (вешает баги и т. п.)

Помещение пакета в репозиторий (показать не успею):

  1. Подпись и закачка на сборочницу исходного пакета (.src.rpm)

  2. Сборочница
    1. собирает пакет в изолированном (в т. ч. без сети) окружении актуального репозитория
    2. Тестирует его на соответствие Policy
    3. Тестирует его на интеграцию в репозиторий (например, на requires/depends). В Сизифе недопустивы unmets (неудовлетворённые зависимости)
    4. Тестирует его на установку в чистое изолированное окружение
    5. Если всё хорошо, помещает пакет в репозиторий

⇒ Довольно много особенностей, например, группы взаимозависимых заданий и т. п., но об этом надо отдельно

LecturesCMC/LinuxApplicationDevelopment2022/13_InstallPackaging (последним исправлял пользователь FrBrGeorge 2022-12-13 18:55:35)