Категория: GNU/Linux


Linux стал слишком сложен и перегружен зависимостями, поэтому для него невозможно создать менеджер пакетов, который бы учитывал их до конца. Об этом напрямую признаётся Михаил Пожидаев, кандидат технических наук и разработчик нового менеджера пакетов Deep Solver для Альт-линукса.

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


Эта проблема, по большому счёту, не является проблемой только менеджеров пакетов. Это именно системная проблема, изначально заложенная в архитектуру Linux и способы разработки "свободных" программ когда более новая версия библиотеки может оказаться несовместимой с предыдущей.

Так как в Linux зависимости гарантированно неразрешимы, получается, что разработка любого нового менеджера пакетов - это всего лишь "научный онанизм" и способ повысить ЧСВ. Потому что в ряде ситуаций он всё равно будет принимать неверные решения. Например, удалять вместе с вторичным компонентом системы, таким, как компьютерная игра, ряд жизненно необходимых для её работы библиотек.

Источник.