TODO/PackageManagement

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Эта страница посвящена задачам улучшения управления программным обеспечением (далее — ПО) в ALT Linux.

Введение

Исходим из того, что мы продолжаем применять apt-get поверх rpm. В случае замены самого apt-rpm на иной пакетный менеджер предложения остаются в силе, а утилиты будут скорректированы.

Типовые случаи управления ПО

Управление ПО включает в себя:

  • установку
  • удаление
  • обновление
  • получение информации о доступном ПО
  • получение информации об установленном ПО
  • получение отчётов об операциях с ПО
  • сопровождение зеркал
  • создание собственных репозиториев
  • централизованное управление установленным ПО

Источниками ПО могут быть:

  • централизованные репозитории
  • зеркала (полные или частичные)
  • персональные репозитории
  • отдельные пакеты

Текущая оснастка

TODO:
добавить описание, сделать в виде схемы


  • rpm
  • apt-get
  • apt-shell
  • apt-pipe
  • synaptic
  • apt-repo
  • apt-indicator
  • alterator-packages
  • alterator-pkg
  • alterator-updates

Проблемы

TODO:
возможно, сделать списком определений с подробным описанием проблемы


  • продолжительность операций
  • возможные ошибки указания или вообще отсутствия внешних репозиториев
  • необходимость обновления индексов до операций
  • при блокировании базы apt-get просто подвисает без сообщения о блокировке
  • ориентация на пакеты в то время как пользователь ожидает приложений
  • невозможность автопочинки apt-get при возникновении конфликтов
  • обязательность парсинга вывода утилит вместо использования библиотеки
  • ограничения консольного вывода apt-get (обрезание имён пакетов)
  • невозможность простого отката изменений
  • в графических утилитах отсутствует функция очистки пакетной базы и кэша
  • консольное управление пакетами разнесено на несколько утилит (apt-get, apt-cache). Новый apt делает всё в одной утилите
  • при обновлении системы невозможно указать и необходимость обновления ядра
  • отсутствуют сохраняемые журналы операций с ПО

Диспозиция

  • apt-get мы переписать не можем
  • Но мы можем сделать его окружение более дружелюбным и простым в использовании

Задачи

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

Предлагаемое решение

Предлагается сделать работу с пакетами на низком уровне через библиотеку, доработать инструментарий и написать центр приложений.

Библиотека libpackage

  • реакция на события с использованием механизма сигнал-слот
  • использование ускорения операций и обеспечения их консистентности
  • журналирование событий

Консольная утилита apt

  • совмещение в одной программе поиска, управления пакетами и управления источниками (враппер для apt-get, apt-cache, apt-cdrom и apt-repo)
  • расширение внутренних возможностей apt-get
  • улучшение диагностики проблем
  • добавление функциональности модулями (работа с репозиториями и зеркалами, просмотр журнала операций)
  • обновление индексов через rsync
  • раскрашивание вывода

Прочие изменения

  • Доработка apt-repo
  • Переписывание rpminstall, packageinstall, alterator-packages и apt-indicator для работы libpackage

Центр приложений ALT Linux

  • фокус на приложения, а не пакеты (приложения описываются в отдельных desktop-файлах с дополнительной метаинформацией)
  • подробные описания
  • категоризация по меню
  • поиск
  • обновление системы и отдельных приложений
  • метки и теги
  • обратная связь (рейтинги, социальные сети, сообщения об ошибках, обсуждение на форуме)
  • рекомендуемые новинки и важные обновления
  • операции в фоновом режиме
  • инструментарий:
    • управление конкретными пакетами в экспертном режиме
    • починка базы (apt, rpm)
    • создание зеркал и своего репозитория
    • автоматическое обновление
    • очистка кэша и ненужных пакетов
  • подключаемые модули (plugins) для расширения функциональности