1 votos

Los enlaces simbólicos se convirtieron en archivos, que contienen rutas relativas, dentro de un paquete de aplicaciones, ¿por qué? ¿Cómo se soluciona?

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?

2voto

BentonQuest Puntos 166

Es posible que haya estado utilizando los protocolos de transporte de red de Apple, pero el sistema de archivos subyacente que utiliza su servidor no es HFS ni APFS, y probablemente tampoco sea capaz de realizar n-forks. Los enlaces simbólicos en ambos sistemas de archivos de Apple se basan en referencias de inodo, y si el sistema de archivos no tiene alguna forma de capacidad de cumplimiento, entonces los elementos con metadatos como referencias de horquilla y búsquedas de inodo no tienen realmente muchas posibilidades de sobrevivir intactos.

Por este motivo, el software que no es de aplicación se distribuye a menudo en formato .dmg, ya que es una isla totalmente autocontenida de conformidad con Apple almacenada como un único bloque de datos contiguo, lo que le permite pasar por servidores hostiles y sistemas de archivos mortales con impunidad.

Esa es la causa - en cuanto a la detección, sólo tratar de ejecutar el sospechoso para ver qué pasa. Los instaladores de MacOS son enormemente complejos, cuanto más grande sea la aplicación, mayor será la posibilidad de que dependan del symlinking interno y, por tanto, mayor será la posibilidad de que ahora sean poco más que bytes inútiles .... porque no se pueden reparar las aplicaciones que han sido dañadas de esa manera.

Prevención: Volver a convertir las aplicaciones y los instaladores en archivos .dmg (con una herramienta práctica como QuickDMG con fines de archivo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X