Descubrí una forma interesante de corrupción dentro de algunos paquetes de aplicaciones que habían sido almacenados en un servidor de archivos durante meses y años.
Los paquetes de aplicaciones eran instaladores para varias versiones de MacOS, si es que importa. Intenté ejecutar Install macOS High Sierra.app
. Se ejecutó durante unos segundos y luego se colgó. Tuve que forzar la salida del instalador desde el Monitor de Actividad. La pista relevante en la consola era:
2019-09-02 05:44:29.222 com.apple.xpc.launchd[1]: (com.apple.install.osinstallersetupd[11106]) No se pudo encontrar y/o ejecutar el programa especificado por el servicio: 2: No hay tal archivo o directorio: /Applications/Install MacOS High Sierra.app/Contents/Frameworks/OSInstallerSetup.framework/osinstallersetupd
Utilizando el Terminal para explorar el contenido de la aplicación de instalación (que es, por supuesto, un Paquete de aplicaciones directorio), encontré esto donde el instalador estaba buscando osinstallersetupd
:
% cd /Applications/Install\ macOS\ High\ Sierra.app/Contents/Frameworks/OSInstallerSetup.framework
% ls -l
total 16
-rwxrwxrwx 1 jdlh admin 33 9 Jul 2018 OSInstallerSetup
-rwxrwxrwx 1 jdlh admin 26 9 Jul 2018 Resources
drwxrwxrwx 4 jdlh admin 136 9 Jul 2018 Versions
% more OSInstallerSetup
Versions/Current/OSInstallerSetup
% more Resources
Versions/Current/Resources
Así que es interesante, OSInstallerSetup
y Resources
eran archivos simples, que contenían rutas relativas como texto. Busqué en el lugar correspondiente en un instalador recién bajado y que funcionaba correctamente:
% ls -l /Applications/Install\ macOS\ Mojave.app/Contents/Frameworks/OSInstallerSetup.framework
total 16
lrwxr-xr-x 1 root wheel 33 2 Sep 05:23 OSInstallerSetup -> Versions/Current/OSInstallerSetup
lrwxr-xr-x 1 root wheel 26 2 Sep 05:23 Resources -> Versions/Current/Resources
drwxr-xr-x 4 root wheel 136 2 Sep 05:23 Versions
Por lo que parece OSInstallerSetup
y Resources
se supone que son enlaces simbólicos ("symlinks"), no archivos.
Había descargado este instalador a mediados de 2018 en mi MacBook Pro, y luego lo copié usando Finder al servidor de archivos. El servidor de archivos presenta un AFP volumen a mi Macbook usando netatalk software. Yo esperaría que el Finder copiara los enlaces simbólicos correctamente.
¿Qué puede haber causado esta corrupción? ¿Cómo puedo detectar otros casos en los que se ha producido, en esta aplicación y en otras? ¿Puedo reparar la corrupción? Parece que debería ser posible, dado que el archivo que sustituye al enlace simbólico contiene la ruta relativa que debería tener el enlace simbólico. ¿Cómo puedo evitar que vuelva a ocurrir?