Уже на этих показателях ожидается уточнение массы предполагаемого бозона Хиггса и других его характеристик, а в конечном случае — определение: это он или не он.

К оглавлению

Интервью

Михаил Пожидаев («Альт Линукс») об отечественном менеджере пакетов Deepsolver

Евгений Крестников

Опубликовано 13 июля 2012 года

Существующие менеджеры пакетов для Linux часто критикуют за высокую для неопытных пользователей сложность, трудности с разрешением зависимостей между пакетами и тому подобные вещи. О новых подходах к управлению установленными программами задумываются разработчики многих дистрибутивов, и российские компании не исключение. Инженер-программист «Альт Линукс», кандидат технических наук Михаил Пожидаев рассказал «Компьютерре» о Deepsolver — перспективной разработке, которая может заменить в дистрибутивах ALT Linux использующийся сейчас 'Advanced Packaging Tool' (APT).

- Что такое Deepsolver, и зачем он нужен? Какие задачи должен решать продукт, и какова его архитектура?

- Главная задача проекта — управление установленными программами. Deepsolver должен стать платформой, на основе которой могут создаваться различные утилиты поддержки операционной системы в актуальном и целостном состоянии. Дизайн проекта разбит на три основные компоненты: подсистема внесения изменений в ОС, подсистема управления информацией о пакетах и подсистема обслуживания репозиториев в сети. Внутри каждой компоненты предусмотрены различные механизмы унификации, делающие реализации ключевых алгоритмов взаимозаменяемыми.

- Продукт работает только с rpm? Есть ли возможность «подружить» его с другими пакетными менеджерами?

- Архитектурно это возможно. Начальная реализация предполагает взаимодействие с rpm в том виде, в каком он используется в ALT Linux. Мы надеемся, что появление других интерфейсов к пакетным системам — это вопрос времени. Возможно, своими силами предложим реализацию для rpm из Fedora.

- Речь идёт только о системе управления пакетами, а не, скажем, о неком сервисе автосборки по типу OBS или ABF?

- В ALT Linux сборка пакетов осуществляется в изолированной chroot-среде, обслуживанием которой занимается Hasher. Наполнение среды основано на сборочных зависимостях, обработка которых выполняется менеджером пакетов. Таким образом, сам Deepsolver автоматизированной сборкой не занимается, но является одним из ключевых компонентов в решении этой задачи.

- Как возникла идея создать замену APT? Чего не хватает в существующей системе, и в чём преимущество Deepsolver над аналогичными решениями?

- Здесь немалую роль играет понятие свободы и независимости. Отрицать этого нельзя. В сообществе есть множество идей и предложений, как сделать управление программами проще и понятней. Возможность их сначала экспериментального, а затем и постоянного внедрения — вопрос перспективности дистрибутива. В частности, ситуация, когда пакеты с пользовательскими приложениями идут вперемешку с пакетами библиотек, вспомогательных данных и пр., явно не может способствовать распространению дистрибутива среди массовых пользователей: человек просто теряется. У нас устойчивой была тема формирования списка доступных программ на основе desktop-файлов в сочетании с дополнительной идеей удаления пакетов-библиотек после удаления использующих их приложений. Хорошо это или плохо — так делать, сказать наперёд никто не может, это надо пробовать; шансы хорошие, но более конкретного ответа пока нет. По этой причине информационная подсистема у нас выделена в отдельную компоненту, в которой можно делать многие вещи, не боясь задеть скрупулёзно настраиваемый механизм обработки зависимостей.

С обработкой зависимостей тоже не всё просто. Уже не секрет, что точная обработка запроса пользователя на установку или удаление программы в нынешнем Linux — это NP-полная задача, то есть в точной постановке с гарантированным ответом нерешаемая. Научные материалы предлагают ряд приближенных эвристических алгоритмов, и на их основе есть реализации библиотек обработки зависимостей пакетов, как, например, libsolv, но мы говорим в том числе и о задаче формирования сборочного окружения, в которой какое-либо приближённое или вероятностное поведение нежелательно.

Собственная реализация обработки зависимостей Deepsolver основана на полиномиальном полностью детерминированном алгоритме с наложением некоторых дополнительных ограничений на задачу, которая должна дать гарантированный минимум, подходящий под требования промышленного применения. Последующее добавление приближенных алгоритмов без ограничений на задачу не запрещается, обязательно будем пытаться делать это, чтобы удобство пользователя попутно не страдало. Начнём, скорее всего, с попытки задействования libsolv. Если всё пройдёт удачно — отлично, если же нет — выполним свою реализацию minisat или другого подходящего алгоритма.

Deepsolver предоставляет некоторый достаточный и отшлифованный минимальный функционал по умолчанию, но прочие идеи не запрещаются. Это одно из ключевых положений нашей архитектуры. В целом подобных деталей очень много, и устраниться от них нельзя. Реализовать их в APT крайне тяжело, это был бы в любом случае почти новый APT, не говоря уже о том, что скорость работы существующей системы не удовлетворяет современным требованиям масштабируемости.

- Deepsolver создан с нуля или является развитием уже существующих систем управления пакетами?

- Разработка ведётся с чистого листа, но с использованием различных вспомогательных библиотек, как, например, libcurl и пр.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату