Почему нет единого менеджер пакета , который действует как интерфейс между конечным пользователем и подстилающим менеджером пакетов низкого уровня ( apt
, yast
, pacman
и т.д.)?
Сложно ли это сделать и поэтому не практично, или есть реальное препятствие, делающее невозможным это сделать?
linux
package-management
vonPetrushev
источник
источник
Ответы:
Прежде всего, есть. Проблема не в том, что нет единого менеджера пакетов, проблема в том, что их десять - серьезно.
Давайте возьмем мой любимый
poldek
. Это пользовательский интерфейс для управления пакетами, который может работать в нескольких разных дистрибутивах и управлять имиrpm
илиdeb
пакетами. Poldek не делает то, что делает rpm (он оставляет это для rpm), а просто посылает правильные команды без необходимости разбираться со всем этим беспорядком.Но на этом проблемы не заканчиваются. У всех разные представления о том, как должен выглядеть пользовательский интерфейс, как он должен функционировать и какие опции он должен предоставлять. Так что другие люди написали свои. На самом деле многие из менеджеров пакетов, которые люди сегодня используют в распространенных дистрибутивах, способны обрабатывать более одного бэкэнда.
В конце, однако, проблема (или преимущество) состоит в том, что людям нравится, когда вещи функционируют именно так, как они хотят, а не в какой-то мета-моде, которая пытается удовлетворить всех, но не может по-настоящему сделать кого-то счастливым. Это причина, по которой мы имеем огромное количество дистрибутивов gazillion. Это причина, по которой у нас так много разных сред рабочего стола и оконных менеджеров (и тот факт, что это вообще разные вещи).
Есть еще выдающиеся предложения о способах написания универсальных пакетов или наличии менеджера, который понимает их все, или наличия API для преобразования одного в другое ... но в конце концов Unix лучше всего использовать в соответствии со своей философией ... каждый инструмент делает одну вещь и делает это хорошо .
Каждый раз, когда у вас есть инструмент, который пытается сделать больше, чем одна вещь, в конечном итоге он не так хорош в одном из них. Например,
poldek
отстой при обработке зависимостей пакета deb.источник
Короче говоря: потому что каждый дистрибутив использует свой подход к управлению пакетами. Они просто не совместимы. Стратегия управления, которая работает лучше всего для Ubuntu, не имеет большого смысла в Arch и т. Д. «Универсальный» (независимый от распространения) менеджер пакетов будет просто дополнительным уровнем пользовательского интерфейса, который никогда не будет работать так же хорошо, как отдельный менеджер каждого дистрибутива.
Таким образом, используя ваши собственные слова, это трудно сделать, и поэтому не практично, в том числе потому, что вряд ли кто-то выиграет от этого.
источник
Исторические причины, в основном. Несколько систем управления пакетами были созданы примерно в одно и то же время, особенно .rpm и .deb. У каждого есть свои приверженцы, и каждый достаточно хорош, чтобы ни один менеджер пакетов не имел убедительного преимущества. Дистрибьюторы, конечно же, не увидят смысла в перестройке своей системы для реализации другого менеджера пакетов.
Это также потребовало бы перекомпиляции каждого пакета в системе (10 000 в случае Debian). Это также потребовало бы внедрения гладкой системы миграции, чтобы пользователи системы могли перейти от старого к новому диспетчеру пакетов. Усилия по миграции будут невероятно большими и экспоненциально большими, чтобы протестировать миграцию, так что вы почти наверняка получите много поломок. Это породило бы много разгневанных игроков.
Каждый дистрибутив поддерживает свой собственный набор зависимостей, основанный на том, что было построено для этого выпуска. Универсальный репозиторий пакетов будет слишком сложным для координации между дистрибутивами, поскольку конфликты зависимостей почти наверняка возникнут. Поэтому фактическое преимущество единой системы управления пакетами (универсальные пакеты) будет невозможно реализовать на практике в любом случае.
Наконец, кто может выбрать универсальный стандартный менеджер пакетов? В комиксе XKCD, указанном в комментариях к OP, обобщен обычный режим отказа в этом типе упражнения. Стандартизация такого рода вещей будет очень политической и может привести к тому, что что-то будет непригодным для использования или настолько испорченным, что порождает еще один раунд разборок в отношении стандартов - если стороны вообще могут прийти к соглашению.
Таким образом, в основном все сводится к: слишком политическим, слишком жестким, слишком рискованным и не приносящим никакой пользы, чтобы этим заниматься.
источник
Что вы описали,
звучит немного как PackageKit мне, то есть ,
Редактировать: см. Здесь список поддерживаемых бэкэндов. Edit2: удалено бесполезное замечание.
источник
Во-первых, поймите, что «Linux» не является операционной системой. Это ядро. Менеджер пакетов - это концепция уровня ОС, а не уровня ядра. Поэтому просить единого менеджера пакетов для Linux не очень разумно.
Однако, если вы спрашиваете, почему различные операционные системы, использующие ядро Linux, не имеют совместимых менеджеров пакетов, вы также можете спросить, почему в Windows и Mac нет совместимых менеджеров пакетов. Или любые другие две операционные системы.
Различные операционные системы удовлетворяют потребности разных пользователей, и менеджер пакетов является их частью. Почему не все дистрибутивы Linux имеют одинаковый оконный менеджер? Или приходят с тем же предустановленным программным обеспечением?
Ответ: Разные штрихи для разных людей.
источник