TODO/PackageManagement
Эта страница посвящена задачам улучшения управления программным обеспечением (далее — ПО) в 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 мы переписать не можем
- Но мы можем сделать его окружение более дружелюбным и простым в использовании
Задачи
- Сделать управление ПО понятным и простым
- Уменьшить количество ошибок и внештатных ситуаций
- Упростить управление разнообразными источниками
- Обеспечить атомарность операций
- Предоставить графические утилиты по управлению приложениями (в том числе установки из файлов)
- Упростить решение проблем, сделать диагностику более понятной
- Облегчить сопровождение (создание зеркал, очистку ненужных пакетов и кэша и т.п.)
Предлагаемое решение
Предлагается сделать работу с пакетами на низком уровне через библиотеку, доработать инструментарий и написать центр приложений.
Библиотека 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) для расширения функциональности