Преимущества Linux для разработчиков и особенности использования ALT

план большого доклада

«Линейная» разработка

  1. Linux
    • Весь спектр средств разработки:
      • промышленные: Eclipse, Netbeans, Emacs
      • специализированные: QTDesigner, разнообразные средние и малые IDE
      • полный цикл разработки / тестирования в командной строке (например, удалённо на хост платформе)
    • Многообразие инструментариев (библиотек)
    • Отсутствие разноверсицы в пределах платформы (для разрабатываемого продукта)
    • Свободный выбор полнофункциональных (а не демо) инструментов и библиотек
    • стандартный формат распространения в рамках линейки платформ (пакет)
  2. ALT
    • Дисциплина оформления и использования библиотек
    • Собственный каталог инструментов просто оформить в виде стандартного репозитория
    • Повышенный контроль качества кода при компиляции

Пакетирование

  1. Linux
    • Стандартный способ оформления процедуры сборки (spec)
    • Стандартный способ оформления процедуры установки (spec)
    • Стандартный способ контроля зависимостей
      • Сборочных
      • Установочных
  2. ALT
    • Значительно упрощённый spec по сравнению с Fedora/RH (за счёт умолчаний)
    • Совместимость с FC по сборке (автоматизированная, см. http://www.altlinux.org/Autoimports)

    • Бинарная совместимость с FC (возможно, после реорганизации пакета с помощью rpmrebuild)

    • Автоматический поиск установочных зависимостей и предоставляемых символов
      • в том числе контроль предоставляемых символов с помощью set_version

Репозитории

  1. Linux
    • Отсутствие разноверсицы в пределах платформы (для всего хранилища)
    • Универсальный способ сравнения, выбора и доставки пакетов с помощью пакетного диспетчера
    • Универсальный способ множественного обновления / установки / удаления пакетов с помощью пакетного диспетчера
    • Электронная подпись пакетов в рамках хранилища
  2. ALT
    • Пакетный диспетчер APT
    • Изолированная сборка с помощью hasher

      • «Чистая» воспроизводимая сборка в произвольном внешнем окружении

      • Внешнее окружение ≠ сборочному окружению
      • Полуавтоматический поиск сборочных зависимостей с помощью buildreq

      • Тесты на правильность оформления пакета, бинарных файлов, библиотек и др. с помощью sisyphus_check (изолированная версия)

        • в т. ч. тесты на отсутствие неизвестных символов
      • Результат сборки представляет собой репозиторий ( ⇒ простое создание индивидуального репозитория)

Инфраструктура разработки

  1. Linux: специфична для различных сообществ
    • Сборочные и информационные ресурсы сообщества
    • Общий репозиторий, достаточный для формирования дистрибутивов
    • Лицензионная чистота (в различной степени)
  2. ALT
    • Проверка цельности в рамках хранилища:

      • запрет неудовлетворённых зависимостей собираемых пакетов
      • запрет увеличения множества непредоставляемых символов
      • установочный и иные тесты совместимости пакета с хранилищем
    • «Сборочница» (girar)

      • Атомарная сброка нескольких пакетов в рамках одной транзакции (не должна нарушать цельность репозитория)
      • CLI по управлению сборочными транзакциям (запуск, удаление, редактирование списка пакетов и т. п.)
      • ACL на право сборки для различных пользователей
      • Автоматическая изолированная сборка без ручного вмешательства
    • ⇒ Перманентная цельность репозитория
      • ⇒ «Rolling release» (получается сам собой)
    • DVCS-хостинг (git), интегрированный в сборочный ресурс
      • CLI с помощью girar

      • + полная история успешных сборок
    • Воспроизводимая технология ( ⇒ полный «корпоративный репозиторий»)

Сопровождение

  1. Linux (варианты рабочего процесса специфисны для сообщества)
    • Эшелонирование репозиториев по уровню цельности
    • «Ветвление» и «замораживание» репозиториев (только обновления по безопасности)
    • Создание дистрибутивов на базе репозитория
  2. ALT
    • Полный контроль над ЖЦ программного продукта:
      • история исходного проекта
      • история модификаций в рамках хранилища
      • воспроизводимая сборка
    • Полный контроль над ЖЦ хранилища:
      • обновление исходников - сборка - тестирование - пополнение
    • Полный контроль над ЖЦ дистрибутива (программной части АС):
      • ответвление целевого хранилища и дисциплина его последующей модификации
      • возможность изолированного целевого хранилища
      • ⇒ возможность сертификации / аттестации, в т. ч с итеративной доработкой

FrBrGeorge/AltLinuxSurvey (last edited 2014-08-25 15:14:08 by FrBrGeorge)