Hay muchas razones para esto, y un poco de historia es para poner las cosas en perspectiva.
Recuerde que cuando hablamos de "Linux" a lo que generalmente nos referimos es a una de las muchas distribuciones de Linux diferentes . "Linux" es en realidad solo un núcleo del sistema operativo.
El objetivo original de Linux era crear un sistema basado en Unix que se ejecute en PC (inicialmente el 386). El primer paso fue crear el núcleo en sí. Mientras Linus Torvalds estaba trabajando en el núcleo, Richard Stallman estaba trabajando en su propio sistema Free Unix, bajo el proyecto GNU (GNU's Not Unix) . Para abreviar una larga historia, los dos convergieron un poco porque GNU tenía las utilidades asociadas (compilador C / biblioteca / herramientas de compilación, shell, editores de texto, etc.) pero no tenía un núcleo para ejecutarlo, y Linux tenía el núcleo pero no tenía utilidades para ejecutar encima de él para que sea útil para las masas.
Esta convergencia llegó a conocerse oficialmente como GNU / Linux. Verá que muchas distribuciones todavía se refieren a sí mismas como distribuciones GNU / Linux.
Debido a la naturaleza libre y abierta de GNU / Linux, cualquiera podría recogerlo y crear un sistema integrado para sus gustos específicos. El resultado fue que se utilizaron muchos flujos diferentes de diferentes métodos de configuración para crear estos sistemas, lo que tuvo el efecto secundario de crear casi tantos sistemas de administración de paquetes diferentes para adaptarse a cada uno.
Cada sistema completo diferente tenía sus propios seguidores fuertes que se mantuvieron con ellos a lo largo de los años, dando como resultado lo que tenemos hoy: un puñado de sistemas de administración de paquetes ampliamente utilizados, profundamente enraizados y estables como RPM , APT / dpkg y Gentoo's Portage .
Hay proyectos, como Autopackage , que intentan resolver el problema, pero la evolución continua de los diversos sistemas de gestión de paquetes admitidos significa que hay muchos objetivos en movimiento a seguir.
Lo que algunos proveedores de software terminan haciendo es agrupar los binarios específicos y las copias de las dependencias que requieren en un gran paquete que funcionará en sistemas específicos.