Prima di tutto c'è. Il problema non è che non esiste un gestore di pacchetti unificato, il problema è che ce ne sono dieci, sul serio.
Prendiamo il mio preferito:poldek
. È un front-end utente per la gestione dei pacchetti che può essere eseguito su diverse distribuzioni e gestire sia rpm
o deb
pacchi. Poldek non fa le cose che fa rpm (le lascia a rpm) e invia solo i comandi giusti senza che l'utente debba capire tutto quel casino.
Ma i problemi non finiscono qui. Ognuno ha un'idea diversa di come dovrebbe essere un front-end utente e di come dovrebbe funzionare e quali opzioni dovrebbe esporre. Quindi altre persone hanno scritto il proprio. In realtà molti dei gestori di front-end dei pacchetti che le persone usano oggi nelle distribuzioni comuni sono in grado di gestire più di un back-end.
Alla fine, tuttavia, il problema (o il vantaggio) è che alla gente piace che le cose funzionino esattamente come vogliono loro, non in qualche meta-moda che cerca di soddisfare tutti solo per non riuscire a rendere veramente felice nessuno. Questo è il motivo per cui abbiamo mille miliardi di distro in primo luogo. È il motivo per cui abbiamo così tanti diversi ambienti desktop e gestori di finestre (e il fatto che in realtà si tratta di tipi di cose diversi).
Ci sono ancora proposte in sospeso per modi di scrivere pacchetti universali o avere un gestore che li capisca tutti o avere un'API per convertire l'uno nell'altro ... ma alla fine Unix è il migliore se usato secondo la sua filosofia .. ogni strumento fa una cosa e la fa bene .
Ogni volta che hai uno strumento che cerca di fare più di una cosa, finisce per non essere altrettanto bravo in una di esse. Ad esempio, poldek
fa schifo nel gestire le dipendenze dei pacchetti deb.
In breve:perché ogni distribuzione utilizza un approccio diverso alla gestione dei pacchetti. Semplicemente non sono compatibili. La strategia di gestione che funziona meglio per Ubuntu avrà poco senso su Arch ecc. Un gestore di pacchetti "universale" (indipendente dalla distribuzione) sarebbe solo un ulteriore livello di interfaccia utente, che non funzionerebbe mai bene come il gestore specifico di ciascuna distribuzione.
Quindi, usando parole tue, è difficile da fare e quindi poco pratico - anche perché quasi nessuno ne trarrebbe beneficio.
Ragioni storiche, principalmente. Diversi sistemi di gestione dei pacchetti sono stati stabiliti nello stesso periodo, in particolare .rpm e .deb. Ognuno ha i suoi aderenti e ognuno è abbastanza buono che nessun singolo gestore di pacchetti ha un vantaggio convincente. I distributori certamente non vedranno l'utilità di una ricostruzione dal basso del loro sistema per implementare un diverso gestore di pacchetti.
Ciò richiederebbe anche la ricostruzione di ogni pacchetto all'interno del sistema (10.000 nel caso di debian). Richiederebbe anche l'implementazione di un sistema di migrazione uniforme in modo che gli utenti del sistema possano passare dal vecchio al nuovo gestore di pacchetti. Lo sforzo per migrare sarebbe incredibilmente grande ed esponenzialmente maggiore per testare la migrazione, quindi quasi sicuramente otterresti molte rotture. Questo genererebbe molti scommettitori arrabbiati.
Ogni distribuzione mantiene il proprio set di dipendenze in base a ciò che è stato creato per quella versione. Un repository di pacchetti universale sarà troppo difficile da coordinare tra le distribuzioni poiché è quasi certo che sorgano conflitti di dipendenza. Pertanto, l'effettivo vantaggio di un sistema di gestione dei pacchetti unificato (pacchetti universali) sarà comunque impossibile da realizzare nella pratica.
Infine, chi può scegliere il gestore di pacchetti standard universale? Il fumetto XKCD a cui si fa riferimento nei commenti sull'OP riassume la solita modalità di fallimento in questo tipo di esercizio. La standardizzazione di questo genere di cose sarebbe molto politica e probabilmente si tradurrebbe in qualcosa che non è utilizzabile, o così profondamente imperfetto da generare un altro giro di discussioni sugli standard, ammesso che le parti possano raggiungere un accordo.
Quindi, fondamentalmente si riduce a:troppo politico, troppo difficile, troppo rischioso e nessun vantaggio da realizzare facendolo.