Различия между версиями 5 и 6
Версия 5 от 2018-10-14 23:03:35
Размер: 4116
Редактор: FrBrGeorge
Комментарий:
Версия 6 от 2018-10-15 19:40:42
Размер: 4114
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 3: Строка 3:
Общая идея:  Общая идея:
Строка 53: Строка 53:
 * - синхранизация (проприетарщина, заброшенные проекты)  * - синхронизация (проприетарщина, заброшенные проекты)
Строка 88: Строка 88:
 

Пакеты, репозитории, установка программ

Общая идея:

  1. Свободное лицензирование
    • ⇒ пакеты
  2. Открытая разработка
    • ⇒ доработанные пакеты
  3. Доступность, в т. ч. коммуникаций
    • ⇒ обновления
  4. Информационно-вычислительные ресурсы сообщества
    • ⇒ совместимость, в т. ч глобальная

Пакет

  • FHS ⇒ архив, распаковка
  • + список файлов/контрольная сумма/назначение
  • + сценарии при установке/удалении
    • события: установка, (Debian: настройка), удаление
    • до/после
  • + стандартные сценарии (триггеры)

  • + зависимости (что это такое)
    • пакет → пакет
      • метапакеты
    • пакет → файл
    • пакет → виртуальный пакет / сущность
      • Provides
    • Автогенератор зависимостей
      • .so
      • python, perl, ...
      • сценарии на sh (запуск бинарников)
      • вообще /usr/lib/rpm/*req*

  • + конфликты/альтернативы

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

Пример: rpm

  1. Установка из файла / информация / удаление
  2. Отслеживание зависимостей и конфликтов
  3. Обновление

Отступление о месте применения триггеров

  • man / info
  • .so
  • desktop-файлы
  • типы mime
  • вообще /usr/lib/rpm/*trigger

Достоинства и недостатки пакетов

  • + Повторное использование
    • ⇒ исправление ошибок
  • + объём
  • +/- единственность версий
  • +/- возможность/необходимость совместимости
  • - дерево зависимостей
    • напр, Debian: 3 разных степени
  • - синхронизация (проприетарщина, заброшенные проекты)
  • ... что ещё?

Репозиторий

(См. выше о возможностях)

  • Сборник
  • Проверка на совместимость
    • unmets
    • символы в библиотеках
    • файловые конфликты
    • тестовая установка
  • Изолированная сборка
    • ⇒ воспроизводимая сборка
  • Оповещение и групповые задания

Пакетный диспетчер

Пример: apt

  • Построение индексов всех репозиториев
  • Определение дерева зависимостей
  • Вычисление списка обновлений
  • Доставка
  • Вызов установщика

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

Общая проблема: безопасность / надёжность?

  • Чужой пакет (? обновление / не тестировался)
  • Чужой бинарник (? зависимости, их версии)
  • Чужой дистрибутив (? разноверсица)
    • appimage
    • flatpak
    • ...
  • «инсталлятор»… ох…
  • Программа на Java или на скриптовом языке

Отдельная тема: внутренние системы распространения:

  • Плагины / модули больших программ (Firefiox / NetBeans / TexLive / ... )

  • Модули скриптовых языков (Python/Perl/Ruby/whatever)

Отдельная тема: виртуалки, эмуляторы и приравненные к ним (не успеем точно)

LecturesCMC/LinuxIntro2018/04_PackagesRepository (последним исправлял пользователь FrBrGeorge 2018-10-15 19:40:42)