Además del hecho de que hay muchos sistemas Unix que se ejecutan en muchas plataformas diferentes, solo considere los problemas que enfrenta el software de Windows a partir de este modo de distribución, a pesar de que realmente solo tienen que preocuparse por una versión de Windows y una plataforma (la PC )
Incluso con solo la PC de la que preocuparse, todavía hay dos arquitecturas: 32 bits y 64 bits. Si observa, la gran mayoría del software de Windows simplemente ignora los 64 bits y solo envía software de 32 bits, dejándolo con un software subóptimo si tiene un sistema de 64 bits. Luego hay bibliotecas. Un proveedor de software no quiere que obtenga errores extraños al intentar ejecutar su programa si no tiene la biblioteca adecuada ya instalada, por lo que solo incluyen la biblioteca con su programa (haciendo que la descarga sea más grande, incluso si ya tiene esta biblioteca) ) Un segundo programa hace lo mismo, pero con una versión diferente de la biblioteca. En el mejor de los casos, el programa B contiene una versión más nueva de la biblioteca que es compatible con versiones anteriores, por lo que si instala el programa B después deprograma A, las cosas funcionan, pero instalarlas en el orden inverso te deja con la versión anterior de la biblioteca y, por lo tanto, el programa B se rompe. Sin embargo, a menudo, el proveedor de la biblioteca realiza cambios que no son compatibles con versiones anteriores y no se molesta en cambiar el nombre de la biblioteca, por lo que no importa en qué orden instale los dos programas, el primero se interrumpirá. Esto se llama "dll hell".
Lamentablemente, para evitar esto, la mayoría del software de Windows ha recurrido al envío de todas sus bibliotecas en su propio directorio de programas en lugar de un directorio compartido, por lo que cada programa tiene todas sus propias bibliotecas privadas y nunca se compartirán entre sí, lo que anula todo punto de dlls en primer lugar y terminas usando mucho más RAM y espacio en disco y tiempo descargando todas las bibliotecas duplicadas.
Esta es la razón por la cual el software de código abierto se publica en forma de código fuente, y los proveedores de sistemas operativos han creado administradores de paquetes que resuelven los problemas de dependencia y descargan solo los archivos binarios precompilados que realmente necesita, sin duplicar las bibliotecas por todas partes. Esto también se ocupa del hecho de que hay muchos sistemas Unix diferentes que se ejecutan en muchas plataformas diferentes.
apt
cosas?