Различия между версиями 2 и 3
Версия 2 от 2016-11-18 16:00:13
Размер: 4856
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2016-11-25 15:43:48
Размер: 3676
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 60: Строка 60:
Репозиторий:
 * Top half:
  * Хранит: пакеты и индексы
  * хранилище для доставки
  * несколько репозиториев ⇒ возможно сравнение версий, обновление
 * Bottom half:
  * Разработка
   * сборочные мощности
    * параллелизм, проверка свойств одного пакета (install check например)
    * изолированная сборка на базе выбранного репозитория
   * информационные ресурсы (типа http://altlinux.org)
   * технологические ресурсы (типа http://webery.altlinux.org )
   * автоопределение зависимостей/сборочных зависимостей
  * Согласование
   * на входе только исходные пакеты + пересборка в текущем окружении
   * контроль unmets
   * контроль символов (всех!) + контроль изменения ABI
    * если ''требуемое'' ABI не пересекается с изменённым, зависимость не сломалась

Какие-то инварианты явно есть, но для их выявления надо посмотреть другие системы дистрибуции
'''Итого''': пакеты и инструменты работы с ними обеспечивают Top half (сторону пользователя) задач дистрибуции:
 * Доставка
 * Деплоймент
 * Сопровождение

Пакеты, хранилище, сообщество

Иcтория:

  • Нужна успешная сборка ⇒ патчи+спеки = src-пакет
  • Инструмент накатывания патчей+выполнения спеков (FreeBSD: makefile)
    • +сборочные зависимости — насколько точные? (релиз, версия, API)

  • Пакеты исходников
    • если не соберётся — соберём! (не вполне та система)
    • подправим при сборке по вкусу
    • а бинарник может и не запуститься (почему?)
  • ⇒ Бинарные пакеты: тестирование и согласование
    • ⇒ установочные зависимости — насколько точные? (версия, ABI)

  • А лучше всего, если зависимости актуально те же самые

    • а если и сборочные одинаковые — воспроизводимая сборка

  • Безопасность: подписи
  • Инсталлятор
    • LFS, Gentoo
    • Иное (+Конфигуратор)

Принципы:

  • Тушкой
  • Core system + дополниетльное ПО
  • Всё — пакеты

Пакет:

  • Комплект файлов (архив)
  • Один upstream
  • «неделимый» — делить не нужно или не выходит
  • для одного назначения (библиотеки/devel-библиотеки/документация разработчика; библиотеки/бинарники)
  • архитектурно зависим/независим (лучше не смешивать в больших объёмах)

Пакет — термин «пользователя дистрибутива», то есть деталь конструктора.

Свойства:

  • Архив (FHS и наследники)
  • Установка/удаление (регистрация/дерегистрация) — общесистемные действия
  • Установочные сценарии
    • pre/post, install/config (например, активация в системе, потоковое редактирование файлов)
    • триггеры (общесистемные действия на основании свойств пакета)
  • Установочные зависимости
    • на другие пакеты
    • на файлы
    • на «что-то«:
      • пакет явно предоставляет (provides) «что-то»
      • другой пакет это требует (requires)
      • Например, модули Python
  • Конфликты и альтернативы

Установка/удаление — установщик пакетов (rpm, dpkg, …)

Отслеживание зависимостей — свойство пакета, но

  • где все пакеты-то? в репозитории (-ях)
  • построение и обсчёт дерева зависимостей?
  • доставка?
  • рекурсивная установка / удаление
  • обновление

⇒ пакетный диспетчер (apt, yum, DNF, …)

Итого: пакеты и инструменты работы с ними обеспечивают Top half (сторону пользователя) задач дистрибуции:

  • Доставка
  • Деплоймент
  • Сопровождение

LecturesCMC/Distro2016/06_LinuxPackages (последним исправлял пользователь FrBrGeorge 2016-11-25 15:43:48)