0 votos

¿Garantiza un paquete de instalación el seguimiento de todos los archivos?

Sé de <command> <l> , pkgutil --files y lsbom . También sé que los paquetes de instalación son realmente un archivo XAR.

Lo que no sé todavía, es que si se ejecuta un .pkg paquetes del instalador garantiza que todos los archivos producidos como resultado de su ejecución serán rastreados?

Por ejemplo, cuando un .pkg paquete de instalación ejecutó algunos arbitrarios scripts, los archivos serán rastreados por MacOS? He intentado buscar y no parece haber ninguna documentación oficial al respecto.

Algunas guías no oficiales:

https://matthew-brett.github.io/docosx/flat_packages.html

http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html

Aunque no se menciona explícitamente, estas guías parecen indicar que los archivos no serán rastreados, ¿es esto correcto?

Además, ¿hay alguna respuesta oficial al respecto?

2voto

Steve Evans Puntos 155

No hay una respuesta oficial, porque no es una función que ofrezca el Instalador de MacOS. La mayoría de los paquetes están firmados digitalmente; si se encuentran problemas, se puede contactar con la organización firmante y responsabilizarla.

Instalador

Los archivos creados o modificados por scripts dentro de un paquete no son rastreados. El sistema MacOS installer no registra ni controla el verdadero impacto del paquete en el destino.

Es posible que busque un Monitor de alteración de archivos .

FSEvents y kqueue

Para las notificaciones de cambios en el sistema de archivos de todo el ordenador MacOS, véase FSEvents .

El sistema integrado de MacOS fs_usage informa de las llamadas al sistema y los fallos de página relacionados con la actividad del sistema de archivos en tiempo real:

 sudo fs_usage -f filesys

Ver 10.4: Supervisar los eventos del sistema de archivos en tiempo real :

OS X 10.4 cuenta con una API privada que utiliza Spotlight para supervisar los eventos del sistema de archivos, como la creación de archivos, el cambio de nombre y los cambios de permisos. Ahora hay disponibles varias herramientas de línea de comandos y de interfaz gráfica que pueden suscribirse al sistema de notificación de eventos y proporcionar un registro de los mismos. Son útiles para, por ejemplo, supervisar los archivos creados por los instaladores, etc.

Los FSEvents en MacOS se implementan utilizando el sistema BSD kqueue :

Kqueue no sólo maneja eventos de descriptores de archivos, sino que también se utiliza para otras notificaciones como la monitorización de modificaciones de archivos, señales, eventos de E/S asíncronos (AIO), monitorización de cambios de estado de procesos hijos, y temporizadores que soportan una resolución de nanosegundos, además kqueue proporciona una forma de utilizar eventos definidos por el usuario además de los proporcionados por el kernel.

1voto

yoliho Puntos 340

La cuestión es qué se entiende por pista.

A nivel del sistema de archivos, MacOS hace un seguimiento de los cambios en los archivos, pero no se guarda para siempre. Los archivos instalados directamente por el instalador tendrán metadatos sobre ellos diciendo qué paquete los instaló. También puede usar pkgutil para ver qué archivos dice que instalará el paquete. Como en el otra respuesta puede ejecutar el instalador ti instalar el paquete y se registrará estos chnages.

Sin embargo, si el instalador ejecuta un script o un ejecutable que crea archivos, los últimos métodos no lo detectarán.

Hay una API que puede ver todos los cambios en los archivos https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/FSEvents_ProgGuide/UsingtheFSEventsFramework/UsingtheFSEventsFramework.html . (sí está en archivo pero la nueva documantación de Apple no tiene resúmenes y creo que aún está actualizada). Así se puede escribir una aplicación para ver qué archivos cambia el instalador.

No he utilizado esta API ni he usado ninguna herramienta para ver los eventos.

Pero creo que siempre hay que registrarse mirando antes de ejecutar el instalador. Existen muchas bibliotecas de lenguaje con aplicaciones simples de ejemplo, por ejemplo Python y también aplicaciones completas que utilizan esta API y proporcionan una interfaz gráfica de usuario para ver los cambios.

Este página web sugieren que se puede ver entonces usando Finder. Creo que Instruments.app en Xcode también puede hacer esto

Los ejemplos de aplicaciones independientes que he encontrado o que me han indicado son aplicaciones de pago son https://fsmonitor.com/ y https://rixstep.com/4/0/tracker/

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