4856
Комментарий:
|
← Версия 3 от 2016-11-25 15:43:48 ⇥
3676
|
Удаления помечены так. | Добавления помечены так. |
Строка 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 (сторону пользователя) задач дистрибуции:
- Доставка
- Деплоймент
- Сопровождение