Чому не існує справді уніфікованого менеджера пакунків для Linux?


31

Чому немає єдиного менеджер пакету , який діє як інтерфейс між кінцевим користувачем і підстильним менеджером пакетів низького рівня ( apt, yast, pacmanі т.д.)?

Це важко зробити і, отже, не практично, чи існує справжня перешкода, що робить це неможливим?


14
Я здогадуюсь, що ми отримаємо єдину теорію поля задовго до того, як отримаємо єдиного менеджера пакунків ...


2
З тієї самої причини ми не хочемо єдиного розподілу - мені подобається, як це робить мій дистрибутив. Якщо ви цього не зробите, то ви можете скористатися іншим або написати своє. Перш ніж це знати, у вас стільки менеджерів пакетів, скільки у програмістів.
new123456

2
ви не маєте на увазі менеджерів пакетів низького рівня rpm, dep, source? Перелічені вами самі - це фронти.
frogstarr78

Відповіді:


35

Перш за все, є. Проблема не в тому, що немає єдиного менеджера пакунків, проблема в тому, що їх десять - серйозно.

Візьмемо мого улюбленого : poldek. Це передній край користувача для управління пакетами, який може працювати в декількох різних дистрибутивах і керувати rpmабо debпакетами, або пакетами. Poldek не робить те, що робить rpm (це залишає на rpm), а просто надсилає правильні команди, без того, щоб користувач міг розбиратися з усім цим безладом.

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

Зрештою, проблема (або перевага) полягає в тому, що люди люблять, щоб речі функціонували саме так, як вони хочуть, а не в якійсь мета-моді, яка намагається задовольнити всіх лише, щоб не зробити дійсно когось щасливим. Це є причиною того, що в першу чергу у нас є незрозумілі дистрибутивні газильйони. Це є причиною того, що у нас так багато різних середовищ настільних та віконних менеджерів (і факт, що насправді це різні речі взагалі).

Є ще видатні пропозиції щодо способів написання універсальних пакетів або наявності менеджера, який все їх розуміє, або має api для перетворення одного в інший ... але врешті-решт, Unix найкраще використовувати у відповідності з його філософією ... кожен інструмент робить одне і робить це добре .

Кожен раз, коли у вас є інструмент, який намагається зробити більше, ніж одна річ, це в кінцевому підсумку не так добре. Наприклад, poldekвідстій при обробці залежностей від дебютного пакету.


1
Досить багато, що я збирався сказати. І відверто кажучи, доки речі пристойно взаємодіють під капотом (скажімо, дотримуючись стандартів LSB), я справді не бачу цієї проблеми.
Шадур

10
++ для "UNIX найкраще, коли ... кожен інструмент робить одне і робить це добре". Іноді я думаю, що занадто багато інструментів
далекі

Помістіть посилання на poldek.pld-linux.org --- може бути корисним для дослідження того, що було останнім оновленням у 2005 році.
сортуйте

10

Коротше кажучи: адже кожен розподіл використовує різний підхід до управління пакетами. Вони просто не сумісні. Стратегія управління, яка найкраще працює для Ubuntu, не матиме сенсу в Arch тощо. «Універсальний» (незалежний від розподілу) менеджер пакетів був би лише додатковим шаром інтерфейсу користувача, який ніколи не працюватиме так добре, як конкретний менеджер кожного дистрибутива.

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


Рішення для управління пакетами є портативними для інших систем. ive бачив portage на debian. Однак назва гри полягає в тому, щоб знайти щось, що працює для користувача, наприклад. не має сенсу робити портаж за замовчуванням на ubuntu. Ми, здається, робимо досить добре поки що в будь-якому разі
Silverfire

8

Історичні причини, головним чином. Одночасно було створено декілька систем управління пакетами - зокрема .rpm та .deb. У кожного є свої прихильники, і кожен достатньо хороший, що жоден менеджер пакунків не має переконливої ​​переваги. Дистриб'ютори, безумовно, не побачать сенсу в наземній перебудові своєї системи для впровадження іншого менеджера пакунків.

Для цього також знадобиться перебудовувати кожен пакет в системі (10 000 у випадку з debian). Також буде потрібно запровадити плавну систему міграції, щоб користувачі системи могли перейти від старого до нового менеджера пакунків. Зусилля з міграції були б незмірно великими та експоненціально більшими для перевірки міграції, тому ви майже напевно отримаєте багато поломки. Це призвело б до появи безлічі розбіжників.

Кожен дистрибутив підтримує свій набір залежностей на основі того, що було побудовано для цього випуску. Універсальне сховище пакетів буде занадто важко координувати між розподілами, оскільки майже напевно можуть виникнути конфлікти залежностей. Тому фактичну користь від уніфікованої системи управління пакунками (універсальних пакетів) в будь-якому разі неможливо реалізувати на практиці.

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

Отже, в основному це зводиться до: занадто політичного, занадто жорсткого, занадто ризикованого і жодної користі, щоб його не досягти.


8

Що ви описали,

що діє як інтерфейс між кінцевим користувачем та базовим менеджером пакетів з низьким важелем

звучить трохи як PackageKit мені, тобто ,

PackageKit - це система, яка спрощує встановлення та оновлення програмного забезпечення на комп'ютері. Основна мета дизайну - уніфікувати всі програмні графічні інструменти, що використовуються в різних дистрибутивах, і використовувати деякі новітні технології, такі як PolicyKit, щоб зробити процес недостатним.

Редагувати: див. Тут список підтримуваних програм. Edit2: Видалено непотрібне зауваження.


6

По-перше, зрозумійте, що "Linux" не є операційною системою. Це ядро. Менеджер пакунків - це концепція на рівні ОС, а не на рівні ядра. Тому просити уніфікованого менеджера пакунків для Linux не дуже розумно.

Однак якщо ви запитуєте, чому різні операційні системи, які використовують ядро ​​Linux, не мають сумісних менеджерів пакетів, то ви можете також запитати, чому Windows і Macs не мають сумісних менеджерів пакетів. Або будь-які інші дві операційні системи.

Різні ОС задовольняють потреби різних користувачів, і менеджер пакунків є його частиною. Чому всі дистрибутиви Linux не мають одного менеджера вікон? Або прийти з тим же попередньо встановленим програмним забезпеченням?

Відповідь: Різні штрихи для різних людей.


1
+1 для "" Linux "не є операційною системою"
Silverfire
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.