¿Cómo las aplicaciones de MacOS instaladas desde paquetes .dmg utilizan bibliotecas comunes como las .dll-s en Windows o las .so/otras en Linux? ¿Las aplicaciones de MacOS se instalan con el tamaño óptimo y no hacen dublicados de bibliotecas/código comunes?

Bueno, un DMG es sólo una imagen de disco. Esto significa que no hay un instalador inherente para llamar, por lo que generalmente cuando se utiliza un DMG, el contenido es una carpeta que tiene todo lo que necesita para ejecutar, almacenar en la estructura de la aplicación. Estas carpetas parecen y se comportan como aplicaciones, pero son carpetas que contienen un montón de bibliotecas y aplicaciones, y varias asistencias necesarias para que la aplicación se ejecute. Como tal, en realidad no se instalan, se copian.

He visto algunos archivos DMG que contienen archivos PKG. Estos también pueden incluir instaladores de nosotros también. Un archivo PKG es un paquete de instalación estándar que puede hacer más cosas como parte de la instalación, y es típicamente utilizado por las aplicaciones más antiguas, o los que quieren utilizar el formato de paquete 📦 para fines de personalización. En este caso, pueden ofrecer al usuario opciones para las bibliotecas de terceros, pero esto realmente rompe el modelo de Mac donde todo es simple y autónomo. Si instalas una aplicación que requiere una biblioteca de terceros, estás a merced de la aplicación de terceros. Este es el infierno de versiones DLL que tenemos con Windows y el infierno de versiones SharedObject que tenemos con Linux. Es cierto que cualquier persona que sepa lo que está haciendo puede trabajar alrededor de esto, pero los Macs tratan de atender a todo el mundo, y deben ser fáciles de usar para las personas que no saben lo que es un archivo SO o DLL. Así que por esta razón, la mayoría de las buenas aplicaciones simplemente usan un DMG, o si usan un PKG, lo usan simplemente para la instalación, o para personalizarla, no para optimizar el almacenamiento usando librerías de terceros.