GNU/Linux >> Znalost Linux >  >> Linux

Proč neexistuje skutečně jednotný správce balíčků pro Linux?

Za prvé, existuje. Problém není v tom, že neexistuje jednotný správce balíčků, problém je v tom, že jich je deset – vážně.

Vezměme si můj oblíbený:poldek . Je to uživatelské rozhraní pro správu balíčků, které může běžet na několika různých distribucích a spravovat buď rpm nebo deb balíčky. Poldek nedělá věci, které dělá rpm (to nechává na rpm) a pouze posílá správné příkazy, aniž by uživatel musel zjišťovat všechen ten nepořádek.

Tím ale problémy nekončí. Každý má jinou představu o tom, jak má uživatelský frontend vypadat, jak by měl fungovat a jaké možnosti by měl nabízet. Takže jiní lidé napsali své vlastní. Ve skutečnosti mnoho z frontendových manažerů balíčků, které lidé dnes používají v běžných distribucích, dokáže zvládnout více než jeden backend.

Nakonec je však problém (nebo výhoda) v tom, že lidé mají rádi věci, které fungují přesně tak, jak chtějí, a ne v nějaké metamódě, která se snaží uspokojit každého, jen aby nikoho neudělala šťastným. To je důvod, proč máme na prvním místě spoustu gazillionových distribucí. To je důvod, proč máme tolik různých desktopových prostředí a správců oken (a fakt, že jde vlastně o různé druhy věcí).

Stále existují otevřené návrhy způsobů, jak psát univerzální balíčky nebo mít manažera, který jim všem rozumí, nebo mít API pro převod jednoho na druhý ... ale nakonec Unix je nejlepší, když se používá v souladu s jeho filozofií .. . každý nástroj dělá jednu věc a dělá to dobře .

Kdykoli máte nástroj, který se snaží dělat více než jednu věc, skončí to tak, že v jedné z nich nebude tak dobrý. Například poldek naštve zpracování závislostí balíčků deb.


Stručně řečeno:protože každá distribuce používá jiný přístup ke správě balíčků. Jednoduše nejsou kompatibilní. Strategie správy, která nejlépe funguje pro Ubuntu, bude mít na Archu atd. malý smysl. „Univerzální“ (nezávislý na distribuci) správce balíčků by byl jen další vrstvou uživatelského rozhraní, které by nikdy nefungovalo tak dobře jako konkrétní správce každé distribuce.

Takže pomocí vlastních slov je to těžké, a proto nepraktické - také proto, že by z toho sotva kdo měl prospěch.


Hlavně historické důvody. Přibližně ve stejnou dobu bylo zavedeno několik systémů pro správu balíčků - zejména .rpm a .deb. Každý má své přívržence a každý je natolik dobrý, že žádný správce balíčků nemá přesvědčivou výhodu. Distributoři určitě nebudou vidět smysl v zákopové přestavbě svého systému, aby implementovali jiného správce balíčků.

To by také vyžadovalo, aby byl každý balíček v systému (10 000 v případě debianu) přestavěn. Také by to vyžadovalo implementaci hladkého migračního systému, aby uživatelé systému mohli přejít ze starého na nového správce balíčků. Úsilí o migraci by bylo nepředstavitelně velké a exponenciálně větší, aby bylo možné migraci otestovat, takže by téměř jistě došlo k mnoha poruchám. To by vyvolalo mnoho naštvaných sázkařů.

Každá distribuce si udržuje svou vlastní sadu závislostí na základě toho, co bylo vytvořeno pro dané vydání. Univerzální úložiště balíčků bude příliš těžké na koordinaci mezi distribucemi, protože je téměř jisté, že dojde ke konfliktům závislostí. Skutečný přínos jednotného systému správy balíčků (univerzálních balíčků) proto stejně nebude možné v praxi realizovat.

Konečně, kdo si může vybrat univerzálního standardního správce balíčků? Komiks XKCD uvedený v komentářích k OP shrnuje obvyklý způsob selhání v tomto typu cvičení. Standardizace takových věcí by byla velmi politická a pravděpodobně by vyústila v něco, co není použitelné, nebo je to tak hluboce vadné, že to vede k dalšímu kolu rukodělného jednání ohledně standardů – pokud se strany vůbec dokážou dohodnout.

Takže v zásadě jde o:příliš politické, příliš těžké, příliš riskantní a žádný přínos, než aby to bylo možné realizovat.


Linux
  1. Použití AppImage pro správu balíčků Linuxu

  2. Jak zabalit aplikace Python pro Linux

  3. Titan – Správce hesel příkazového řádku pro Linux

  1. Linuxbrew – společný správce balíčků pro Linux a Mac OS X

  2. Nix – výkonný správce balíčků pro Linux a Unix

  3. Buttercup – moderní správce hesel pro Linux

  1. Proč neexistuje rozhraní DirectX API pro Linux?

  2. Správce záložek SSH pro Linux

  3. Existuje alternativa pro JTS TestBuilder na Linuxu?