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

28

¿Cómo puedo hacer un script para instalar o actualizar aplicaciones desde Mac App Store? Prefiero las herramientas de línea de comandos, pero AppleScript o alguna otra API sería suficiente.

Piezas de rompecabezas relevantes:

  • installer : tenga en cuenta especialmente el indicador -store que se utiliza para simular las instalaciones de App Store para desarrolladores de paquetes.
  • systemupdate : capaz de manejar actualizaciones de aplicaciones Apple, señala -i installs y -a le dice que instale todas las actualizaciones disponibles
pregunta Joseph Holsten 27.02.2012 - 05:03

4 respuestas

13

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

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

Para instalar:

brew install mas 

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

mas upgrade

Si no desea confiarle 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 con el llavero.

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

Actualmente en Lion y Mountain Lion: esto significa que la Mac llegará a un servidor OS X local que almacena en caché las descargas de 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á los archivos directamente desde Apple.

Para Mountain Lion 10.8.2 y versiones anteriores, todo sigue llegando a través de la App Store, por lo que el software de Apple, como las actualizaciones de OS X, es completamente programable con esta herramienta, solo para actualizaciones y actualizaciones que no son de la App Store.

Lo que no es compatible con scripts (todavía o quizás alguna vez) son aplicaciones que se instalan desde 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 copiarlas a múltiples macs siempre que la ID de Apple utilizada para descargar la primera copia de la aplicación también se use en todos los Mac que ejecutarán la aplicación.

Sé de varias instituciones que compran una copia de cada aplicación para un laboratorio de 20 computadoras para obtener una licencia para cada puesto, pero luego implementan un archivo en todos los Mac para que una vez que se realice una descarga de actualización, una herramienta como Apple Remote Desktop o Caspar scp o rsync para mover la versión actualizada de la aplicación a todas las Mac en el laboratorio.

Si sigue la ruta del ID de Apple individual para cada máquina, no podrá realizar un script de la instalación de las actualizaciones de la aplicación, ya que cada una solicitará la contraseña de cada cuenta a menos que se sienta cómodo al conocer todas las contraseñas y realice scripts de UI. donde AppleScript puede ingresar el nombre de usuario y la contraseña correctos de manera programática y luego hacer clic en el botón para comenzar el proceso de descarga de las actualizaciones de cada máquina. La forma en que las aplicaciones de la tienda de aplicaciones tienen un código firmado hace que sea difícil deslizarse en una actualización sin invalidar el paquete o, de alguna manera, aplicar ingeniería inversa / jailbreak a todo el proceso de la tienda de aplicaciones y evitar el flujo normal de dejar que el instalador de la aplicación haga su trabajo.

    
respondido por el bmike 12.09.2012 - 17:23
5

Esto es posible usando la utilidad de línea de comando de código abierto mas :

  

mas-cli

     

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

Divulgación: soy el creador de mas

    
respondido por el argon 15.02.2016 - 19:56
3

Es posible que desees consultar sprout-wrap y solista . Puede instalar paquetes OSX desde un uri usando el proveedor dmg_package . Echa un vistazo a algunas de las recetas en sprout para ver algunos ejemplos.

Para actualizar automáticamente las actualizaciones de seguridad, use pivotal_workstation :: osx_updates receta. ( Tenga en cuenta que esto utiliza softwareupdate )

Para las aplicaciones Homebrew , el proveedor brew tiene una acción upgrade .

Por lo que sé, no hay ningún proveedor para actualizar automáticamente las aplicaciones de App Store. Sin embargo, es posible que pueda usar la función de actualización automática incorporada de algunas aplicaciones dentro de un bloque de proveedor execute o bash . También puede utilizar AppleScript dentro de una receta del chef para automatizar la aplicación App Store. Para ver algunos ejemplos de uso de AppleScript en línea, eche un vistazo a sprout -osx-settings :: function_keys receta. (Algunos otros ejemplos: sprout-osx-settings :: remove_expose_keyboard_shortcuts.rb"> sprout-osx-settings :: remove_expose_keyboard_shortcuts.rb"> sprout-osx-settings :: remove_expose_keyboard_shortcuts.rb"> sprout-osx-settings / a>, sprout-osx-settings :: set_finder_show_user.jpg a>)

    
respondido por el TrinitronX 15.06.2013 - 00:50
1

No estoy seguro 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 mantenerla actualizada, por lo que para un sitio pequeño puede ser demasiado trabajo. El flujo de trabajo básico es:

  • Haz una "máquina de compilación" limpia e instala radmind & todo su software estándar.
  • Crea transcripciones de Radmind para esa máquina de compilación.
  • Instale radmind en las máquinas de sus clientes y extraiga / aplique las transcripciones para instalarlas.
  • Para actualizaciones, actualice el servidor de compilación y realice 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 el bit interactivo 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 especiales y únicos, esta podría no ser una gran solución.

    
respondido por el voretaq7 02.03.2012 - 18:42

Lea otras preguntas en las etiquetas