¿Se pueden automatizar las instalaciones y actualizaciones de Mac App Store?

¿Cómo puedo programar la instalación o actualización de aplicaciones desde Mac App Store? Preferiría las herramientas de línea de comandos, pero bastaría con AppleScript o alguna otra API.

Piezas de rompecabezas relevantes:

  • installer: tenga en cuenta especialmente la -storebandera que se utiliza para simular instalaciones de App Store para desarrolladores de paquetes.
  • systemupdate: capaz de gestionar las actualizaciones de las aplicaciones de Apple, marca las -iinstalaciones y -ale dice que instale todas las actualizaciones disponibles
¿Sus aplicaciones se compraron con una ID de Apple o está rastreando una ID de Apple individual para cada máquina?
@bmike: Me sentiría cómodo usando una ID de Apple compartida o una única para cada máquina
Suponiendo que MacWorld tenga razón en que Mountain Lion desaprobó el servicio de actualización de software y que todo se realiza a través de Mac App Store, administrar esto será un desafío para los grupos de trabajo y las empresas. Me pregunto si Apple Configurator podría expandirse para ayudar a administrar cuentas y Remote Desktop podría iniciar actualizaciones sin molestar a los usuarios hasta que un reinicio aplique las actualizaciones.

Respuestas (4)

La mayoría de las personas pueden simplemente activar las actualizaciones automáticas y dejar que Apple administre todas las actualizaciones. Si hay una razón por la que no puede o no quiere hacer eso, existe una herramienta de línea de comandos para automatizar las instalaciones y actualizaciones de la App Store.

Una herramienta notable de código abierto para replicar Mac App Store desde la línea de comandos es mas :

Instalar:

brew install mas 

Una vez que esté dentro, puede actualizar todas las aplicaciones que están disponibles con:

mas upgrade

Si no desea confiar en el software de terceros con su ID de Apple, también puede automatizar su interfaz de usuario y puede almacenar el nombre de la cuenta y la contraseña usando un llavero.

La solución de Apple para parches de seguridad y actualizaciones que no son de la App Store es ejecutar la softwareupdateherramienta desde la línea de comandos para actualizar todo el software que Apple pretende instalar sin la intervención del usuario ni pasar por la interfaz de usuario de la App Store.

Actualmente en Lion y Mountain Lion: esto significa que la Mac accederá a un servidor OS X local que almacena en caché las descargas de las actualizaciones del sistema y el software instalado fuera de la tienda de aplicaciones. Si no tiene un servidor de actualización de software local, por supuesto descargará archivos directamente de Apple.

Para Mountain Lion 10.8.2 y versiones anteriores, todo viene a través de la App Store, por lo que el software de Apple, como las actualizaciones de OS X, se puede programar completamente con esta herramienta para actualizaciones y solo para actualizaciones que no sean de la App Store.

Lo que no es programable (todavía o tal vez nunca) son las aplicaciones que se instalan desde la App Store como Xcode y Pages y aplicaciones de terceros. Esto significa que no puede tener una sola herramienta para actualizar todo el software sin abrir la aplicación App Store e ingresar una contraseña en la pantalla de la interfaz de usuario.

Lo que puede hacer es descargar las aplicaciones una vez y luego copiar la aplicación en varias Mac, siempre que la ID de Apple utilizada para descargar la primera copia de la aplicación también se use en todas las Mac que ejecutarán la aplicación.

Conozco varias instituciones que compran una copia de cada aplicación para un laboratorio de 20 computadoras a fin de obtener una licencia para cada puesto, pero luego implementan un archivo en todas las Mac para que, una vez que se complete la descarga de una actualización, una herramienta como Apple Remote Desktop o Caspar o una herramienta casera como scpo rsyncse usa para mover la versión actualizada de la aplicación a todas las Mac en el laboratorio.

Si sigue la ruta de la ID de Apple individual para cada máquina, no podrá programar la instalación de las actualizaciones de la aplicación, ya que cada una solicitará la contraseña para cada cuenta, a menos que se sienta cómodo conociendo todas las contraseñas y realizando secuencias de comandos de IU donde AppleScript puede hacerlo. ingrese el nombre de usuario y la contraseña correctos programáticamente y luego haga clic en el botón para comenzar el proceso de descarga para las actualizaciones de cada máquina. La forma en que las aplicaciones de la tienda de aplicaciones están firmadas con código hace que sea difícil deslizar una actualización sin invalidar el paquete o de alguna manera realizar ingeniería inversa/liberar todo el proceso de la tienda de aplicaciones y eludir el flujo normal de dejar que el instalador de la aplicación haga su trabajo.

masEsto es posible utilizando la utilidad de línea de comandos de código abierto :

mas-cli

Una sencilla interfaz de línea de comandos para Mac App Store. Diseñado para secuencias de comandos y automatización.

Divulgación: soy el creador demas

Muchas gracias por esa herramienta y por publicarla aquí. Ha tardado mucho en llegar y espero que Apple mantenga la API/SDK estable para que la herramienta siga funcionando con el tiempo.

Es posible que desee ver sprout-wrap y solist . Puede instalar paquetes OSX desde un uri usando el dmg_packageproveedor. Echa un vistazo a algunas de las recetas en sprout para ver algunos ejemplos.

Para actualizar automáticamente las actualizaciones de seguridad, utilice la receta pivotal_workstation::osx_updates . ( Tenga en cuenta que esto utilizasoftwareupdate )

Para aplicaciones Homebrew , el brewproveedor tiene una upgradeacción.

Que yo sepa, no hay ningún proveedor que actualice automáticamente las aplicaciones de la App Store. Sin embargo, es posible que pueda usar la función de actualización automática integrada de algunas aplicaciones dentro de un bloque executede bashproveedor. También puede usar AppleScript dentro de una receta de chef para automatizar la aplicación App Store. Para ver algunos ejemplos del uso de AppleScript en línea, eche un vistazo a la receta sprout-osx-settings::function_keys . (Algunos otros ejemplos: sprout-osx-settings::remove_expose_keyboard_shortcuts , sprout-osx-settings::set_finder_show_user_home_in_sidebar )

No estoy seguro acerca de una solución de tipo AppleScript, pero existen herramientas para administrar una gran cantidad de sistemas OS X.

Con el que estoy más familiarizado es radmind (que comenzó en UMich para administrar sus laboratorios (sitio antiguo) ).

radmind está realmente orientado a implementar una plantilla de sistema operativo estándar en un grupo de máquinas y mantenerlo actualizado, por lo que para un sitio pequeño puede ser demasiado trabajo. El flujo de trabajo básico es:

  • Cree una "máquina de compilación" limpia e instale radmind y todo su software estándar.
  • Cree transcripciones de radmind para esa máquina de compilación.
  • Instale radmind en sus máquinas cliente y extraiga/aplique las transcripciones para instalarlas.
  • Para actualizaciones, actualice el servidor de compilación y haga una transcripción de actualización/parche, luego aplíquelo a los clientes.

… Entonces, en el sentido más estricto, no está automatizando la instalación, pero solo tiene que hacer la parte interactiva una vez y luego distribuir el sistema operativo actualizado a sus clientes.

Obviamente, esto funciona mejor si puede instalar un conjunto estándar de software en todas partes: si sus clientes son todos especiales y únicos, esta podría no ser una gran solución.

Estoy tratando de automatizar este proceso dentro de chef, que es una herramienta de automatización del sistema como radmind. El problema es que no hay forma de que estas herramientas instalen aplicaciones desde la tienda de aplicaciones Mac.
@JosephHolsten El procedimiento radmindsería "Instalar la aplicación en su máquina de plantilla y actualizar la transcripción". (Sigue siendo una instalación manual, pero una instalación manual en lugar de 1000).