¿Por qué no hay un administrador de paquetes verdaderamente unificado para Linux?

31

¿Por qué no hay un gestor de paquetes unificada que actúa como una interfaz entre el usuario final y el gestor de paquetes de bajo nivel subyacente ( apt, yast, pacman, etc.)?

¿Es difícil de hacer y, por lo tanto, no es práctico, o hay un obstáculo genuino que hace imposible hacerlo?

vonPetrushev
fuente
14
Supongo que obtendremos una teoría de campo unificada mucho antes de obtener un administrador de paquetes unificado ...
2
Por la misma razón por la que no queremos una distribución única: me gusta la forma en que lo hace mi distribución. Si no lo hace, entonces puede usar otro o escribir el suyo. Antes de que te des cuenta, tienes tantos gestores de paquetes como programadores.
new123456
2
¿No te refieres a los gestores de paquetes de bajo nivel rpm, dep, fuente? Los que usted enumeró son, ellos mismos, frontends.
frogstarr78

Respuestas:

35

En primer lugar, hay. El problema no es que no haya un administrador de paquetes unificado, el problema es que hay diez de ellos, en serio.

Tomemos mi favorito: poldek. Es una interfaz de usuario para la gestión de paquetes que se pueden ejecutar en varias distribuciones diferentes y gestionar bien rpmo debpaquetes. Poldek no hace lo que hace rpm (lo deja en rpm) y simplemente envía los comandos correctos sin que el usuario tenga que resolver todo ese desorden.

Pero los problemas no terminan ahí. Todos tienen una idea diferente de cómo se supone que debe ser un front end de usuario y cómo debería funcionar y qué opciones debería exponer. Entonces otras personas han escrito las suyas. En realidad, muchos de los administradores de front-end de paquetes que las personas usan en las distribuciones comunes hoy en día pueden manejar más de un back-end.

Al final, sin embargo, el problema (o ventaja) es que a las personas les gusta que las cosas funcionen exactamente de la manera que desean, no de una manera meta que trata de satisfacer a todos solo para no hacer feliz a nadie. Esta es la razón por la que tenemos innumerables millones de distribuciones en primer lugar. Es la razón por la que tenemos tantos entornos de escritorio y administradores de ventanas diferentes (y el hecho de que en realidad son diferentes tipos de cosas).

Todavía hay propuestas destacadas para formas de escribir paquetes universales o tener un administrador que los entienda a todos o tener una API para convertir uno a otro ... pero al final Unix es mejor cuando se usa de acuerdo con su filosofía ... cada herramienta hace una cosa y lo hace bien .

Cada vez que tiene una herramienta que intenta hacer más de una cosa, termina siendo no tan buena en una de ellas. Por ejemplo, poldekes un asco manejar las dependencias del paquete deb.

Caleb
fuente
1
Más o menos lo que iba a decir. Y, francamente, mientras las cosas interoperen decentemente bajo el capó (por ejemplo, al adherirse a los estándares LSB), entonces realmente no veo el problema.
Shadur
10
++ para "UNIX es mejor cuando ... cada herramienta hace una cosa y lo hace bien". A veces pienso que demasiadas herramientas están muy lejos de ese camino ...
ktf
Ponga un enlace a poldek.pld-linux.org --- podría ser útil para investigar algo que se actualizó por última vez en 2005.
sorin
10

En resumen: porque cada distribución utiliza un enfoque diferente para la gestión de paquetes. Simplemente no son compatibles. La estrategia de administración que funcione mejor para Ubuntu tendrá poco sentido en Arch, etc. Un administrador de paquetes "universal" (independiente de la distribución) sería solo una capa adicional de interfaz de usuario, que nunca funcionaría tan bien como el administrador específico de cada distribución.

Entonces, usando sus propias palabras, es difícil de hacer y, por lo tanto, no es práctico , también porque casi nadie se beneficiaría de ello.

rozcietrzewiacz
fuente
Las soluciones de gestión de paquetes son portátiles a otros sistemas. He visto portage en Debian. Sin embargo, el nombre del juego es encontrar algo que funcione para el usuario, por ejemplo. no tiene mucho sentido hacer que portage sea el predeterminado en ubuntu. Parece que lo estamos haciendo bastante bien hasta ahora de todos modos.
Silverfire
8

Razones históricas, principalmente. Varios sistemas de administración de paquetes se establecieron aproximadamente al mismo tiempo, particularmente .rpm y .deb. Cada uno tiene sus seguidores y cada uno es lo suficientemente bueno como para que ningún administrador de paquetes tenga una ventaja convincente. Los distribuidores ciertamente no verán el punto en una reconstrucción desde cero de su sistema para implementar un administrador de paquetes diferente.

Esto también requeriría que cada paquete dentro del sistema (10,000 en el caso de Debian) sea reconstruido. También requeriría la implementación de un sistema de migración sin problemas para que los usuarios del sistema pudieran pasar del administrador de paquetes antiguo al nuevo. El esfuerzo para migrar sería inviablemente grande y exponencialmente mayor para probar la migración, por lo que seguramente obtendrá muchas roturas. Esto generaría muchos apostadores furiosos.

Cada distribución mantiene su propio conjunto de dependencias en función de lo que se creó para esa versión. Un repositorio universal de paquetes será demasiado difícil de coordinar entre las distribuciones ya que es casi seguro que surjan conflictos de dependencia. Por lo tanto, el beneficio real de un sistema unificado de gestión de paquetes (paquetes universales) será imposible de realizar en la práctica de todos modos.

Finalmente, ¿quién puede elegir el administrador de paquetes estándar universal? El cómic XKCD al que se hace referencia en los comentarios sobre el OP resume el modo de falla habitual en este tipo de ejercicio. Estandarizar este tipo de cosas sería muy político y probablemente resultaría en algo que no se puede usar, o tan profundamente defectuoso que generará otra ronda de discusión sobre las normas, si las partes pueden llegar a un acuerdo.

Entonces, básicamente se trata de: demasiado político, demasiado duro, demasiado arriesgado y ningún beneficio para lograrlo al hacerlo.

Preocupado por TunbridgeWells
fuente
8

Lo que describiste

que actúa como una interfaz entre el usuario final y el administrador de paquetes de bajo nivel subyacente

me suena un poco a PackageKit, es decir ,

PackageKit es un sistema diseñado para facilitar la instalación y actualización de software en su computadora. El objetivo principal del diseño es unificar todas las herramientas gráficas de software utilizadas en diferentes distribuciones, y utilizar algunas de las últimas tecnologías como PolicyKit para que el proceso sea menos difícil.

Editar: consulte aquí para obtener una lista de backends compatibles. Edit2: Eliminado comentario inútil.

sr_
fuente
6

Primero, comprenda que "Linux" no es un sistema operativo. Es un kernel. Un administrador de paquetes es un concepto a nivel de sistema operativo, no uno a nivel de núcleo. Por lo tanto, pedir un administrador de paquetes unificado para Linux no es realmente sensato.

Sin embargo, si se pregunta por qué los diversos sistemas operativos que utilizan el kernel de Linux no tienen administradores de paquetes compatibles, también puede preguntar por qué Windows y Mac no tienen administradores de paquetes compatibles. O cualesquiera otros dos sistemas operativos.

Los diferentes sistemas operativos satisfacen las necesidades de los diferentes usuarios, y el administrador de paquetes es parte de ello. ¿Por qué no todas las distribuciones de Linux tienen el mismo administrador de ventanas? ¿O viene con el mismo software preinstalado?

Respuesta: diferentes trazos para diferentes personas.

jwd
fuente
1
+1 para '"Linux" no es un sistema operativo "
Silverfire