Почему не там действительно объединенный диспетчер пакетов для Linux?

Если Вы имеете в виду, почему Вам нужен./в запуске - поэтому (в отличие от этого, в Windows), текущий каталог не является частью Вашего пути по умолчанию. Если Вы работаете:

$ ls

Ваша оболочка ищет ls в каталогах в Вашей переменной окружения PATH (echo $PATH видеть его), и выполнения первый названный исполняемый файл ls то, что это находит. Если Вы вводите:

$ a.out

оболочка сделает аналогично - но она, вероятно, не найдет исполняемый файл названным a.out. Необходимо сказать оболочку, где a.out - это это находится в текущем каталоге (.) затем, путь ./a.out.

Если Вы спрашиваете, почему это называют "a.out", это - просто название выходного файла по умолчанию gcc. Можно изменить его с-o аргументом командной строки. Например:

$ gcc test.c -o test
$ ./test
31
01.11.2011, 06:10
5 ответов

В первую очередь, существует. Проблема не состоит в том, что нет никакого объединенного диспетчера пакетов, проблема существует десять из них – серьезно.

Давайте возьмем моего фаворита: poldek. Это - пользовательский фронтэнд для управления пакетом, которое может работать на нескольких различных дистрибутивах и справиться также rpm или deb пакеты. Poldek не делает, об/мин материала делает (он оставляет это об/мин), и просто отправляет правильные команды без пользователя, имеющего необходимость выяснять всю ту путаницу.

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

В конце, однако, проблемой (или преимущество) являются люди как вещи функционировать точно способ, которым они хотят, не некоторым метаспособом, который пытается удовлетворить всех только, чтобы не удаться действительно сделать кого-либо счастливым. Это - причина, у нас есть многочисленное огромное количество дистрибутивов во-первых. Это - причина, у нас есть столько различных Настольных сред и Менеджеров окон (и факт, это - на самом деле различные виды вещей вообще).

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

Любое время у Вас есть инструмент, который пытается сделать больше чем одну вещь, она заканчивает тем, что была не как хорошая в одном из них. Например, poldek сосет при обработке deb зависимости от пакета.

35
27.01.2020, 19:37
  • 1
    В значительной степени, что я собирался сказать. И откровенно говоря, пока материал взаимодействует прилично под капотом (скажите путем соблюдения стандартов LSB), затем я действительно не вижу проблемы. –  Shadur 31.10.2011, 16:18
  • 2
    ++ для "UNIX является лучшим, когда... каждый инструмент делает одну вещь и делает это хорошо". Иногда я думаю, что слишком много инструментов являются путем от того пути... –  ktf 31.10.2011, 16:23
  • 3
    Поместите ссылку на poldek.pld-linux.org---, могло быть полезным для исследования чего-то, что имело последнее обновление в 2005. –  sorin 17.12.2016, 18:46

Короче говоря: потому что каждое распределение использует другой подход к управлению пакетом. Они просто не совместимы. Стратегия управления, которая работает лучше всего на Ubuntu, будет иметь мало смысла на Arch и т.д. "Универсальный" (независимый от распределения) диспетчер пакетов был бы просто дополнительным слоем пользовательского интерфейса, который никогда не будет работать столь же хороший как определенный менеджер каждого распределения.

Так, с помощью собственных слов трудно сделать и поэтому не практичное - также, потому что едва ли кто-то извлек бы выгоду из него.

10
27.01.2020, 19:37
  • 1
    Пакета является портативным к другим системам. я видел перевозку на debian. Однако название игры должно найти что-то, что работает на пользователя, например, не имеет большого смысла делать перевозку значением по умолчанию на человечности. Мы, кажется, делаем вполне прилично до сих пор так или иначе. –  Silverfire 31.10.2011, 23:54

Исторические причины, главным образом. Несколько систем управления пакета были установлены в то же время - особенно .rpm и .deb. У каждого есть его адгезивные средства, и каждый достаточно хорош, что никакой единственный диспетчер пакетов не имеет востребованное преимущество. Дистрибьюторы, конечно, не будут видеть, что точка в земле восстанавливает их системы для реализации другого диспетчера пакетов.

Это также потребовало бы, чтобы каждый пакет в системе (10,000's в случае debian) был восстановлен. Это также потребовало бы, чтобы гладкая система миграции была реализована так, чтобы пользователи системы могли пойти со старого на новый диспетчер пакетов. Усилие мигрировать было бы неосуществимо большим, и экспоненциально больше для тестирования миграции, таким образом, Вы почти наверняка получите много поломок. Это генерировало бы многих сердитых профессиональных игроков.

Каждый дистрибутив поддерживает свой собственный набор зависимостей на основе того, что было создано для того выпуска. Универсальное хранилище пакетов будет слишком трудно для координирования среди дистрибутивов, поскольку конфликты зависимости почти наверняка возникнут. Поэтому фактическое преимущество объединенной системы управления пакета (универсальные пакеты) будет невозможно понять на практике так или иначе.

Наконец, кто добирается для выбора универсального стандартного диспетчера пакетов? Комик XKCD, на которого ссылаются в комментариях к OP, суммирует обычный вид отказа в этом типе осуществления. Стандартизация этого вида вещи была бы очень политической и вероятной привести к чему-то, что не применимо, или так глубоко испорченное, что это порождает еще один раунд заламывания рук о стандартах - если стороны могут прийти к соглашению вообще.

Так, в основном это сводится: слишком политический, слишком твердый, слишком опасный и никакое преимущество, которое будет реализовано путем выполнения его.

8
27.01.2020, 19:37

Что Вы описали,

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

немного походит на PackageKit мне, то есть,

PackageKit является системой, разработанной для создания установки и обновления программного обеспечения на компьютере легче. Основная цель дизайна состоит в том, чтобы объединить все программное обеспечение графические инструменты, используемые в различных дистрибутивах, и использовать часть новейшей технологии как PolicyKit, чтобы заставить процесс высосать меньше.

Править: Посмотрите здесь для списка поддерживаемых бэкендов. Edit2: Удаленный бесполезный комментарий.

8
27.01.2020, 19:37

Во-первых, поймите, что "Linux" не является операционной системой. Это - ядро. Диспетчер пакетов является понятием уровня ОС, не уровнем ядра один. Поэтому просьба об объединенном диспетчере пакетов для Linux не действительно sensical.

Однако, если Вы спрашиваете, почему различные операционные системы, которые используют ядро Linux, не имеют совместимых диспетчеров пакетов, хорошо можно также спросить, почему Windows и Mac не имеют совместимых диспетчеров пакетов. Или любые другие две операционных системы.

Различные Ose угождают потребностям различных пользователей, и диспетчер пакетов является частью его. Почему все дистрибутивы Linux не имеют того же менеджера окон? Или идите все равно с предварительно установленным программным обеспечением?

Ответ:Каждому свое счастье.

6
27.01.2020, 19:37
  • 1
    +1 для '"Linux" не является операционной системой' –  Silverfire 31.10.2011, 23:56

Теги

Похожие вопросы