31 votos

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

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

Piezas de puzzle relevantes:

  • installer Nota: especialmente el -store que se utiliza para simular las instalaciones de la App Store para los desarrolladores de paquetes.
  • systemupdate : capaz de gestionar las actualizaciones de las aplicaciones de Apple, banderas -i instala y -a le dice que instale todas las actualizaciones disponibles

14voto

Oskar Puntos 1242

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

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

Para instalar:

brew install mas 

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

mas upgrade

Si no quieres confiar tu ID de Apple a un software de terceros, también puedes automatizar tu IU y almacenar el nombre de la cuenta y la contraseña mediante el llavero.

La solución de Apple para los parches y actualizaciones de seguridad que no son de la App Store es ejecutar el softwareupdate 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 el Mac se dirigirá a un servidor local de OS X que almacena en caché las descargas de las actualizaciones del sistema y del software instalado fuera de la tienda de aplicaciones. Si no tiene un servidor local de actualización de software, por supuesto descargará los archivos directamente de Apple.

Para Mountain Lion 10.8.2 e inferior, - todo sigue viniendo a través de la App Store - por lo que el software de Apple como las actualizaciones de OS X es totalmente scriptable utilizando esta herramienta para las actualizaciones y las actualizaciones no-App Store solamente.

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

Lo que puedes hacer es descargar las aplicaciones una vez y luego copiar la aplicación en varios macs, siempre y cuando el ID de Apple utilizado para descargar la primera copia de la aplicación también se utilice en todos los Macs que ejecutarán la aplicación.

Conozco varias instituciones que compran una copia de cada aplicación para un laboratorio de 20 ordenadores para obtener una licencia para cada asiento, pero luego despliegan un archivo a todos los Macs para que una vez que se realiza una descarga de actualización, una herramienta como Escritorio remoto de Apple o Caspar o una herramienta casera como scp o rsync se utiliza para mover la versión actualizada de la aplicación a todos los Macs del laboratorio.

Si usted va la ruta de ID de Apple individual para cada máquina, usted no será capaz de script la instalación de las actualizaciones de la App ya que cada uno solicitará la contraseña para cada cuenta a menos que usted se sienta cómodo sabiendo todas las contraseñas y la realización de secuencias de comandos de interfaz de usuario donde AppleScript puede introducir el nombre de usuario y la contraseña correcta de forma programada y luego haga clic en el botón para iniciar el proceso de descarga de las actualizaciones de cada máquina. La forma en que las aplicaciones de la tienda de aplicaciones están firmadas por código hace que sea difícil simplemente deslizar una actualización sin invalidar el paquete o de alguna manera la ingeniería inversa / jailbreaking 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.

8voto

argon Puntos 141

Esto es posible utilizando el código abierto mas utilidad de línea de comandos:

mas-cli

Una sencilla interfaz de línea de comandos para la Mac App Store. Diseñada para la creación de scripts y la automatización.

Divulgación: Soy el creador de mas

3voto

TrinitronX Puntos 515

Tal vez quiera consultar sprout-wrap y solista . Puedes instalar paquetes OSX desde una uri utilizando el comando dmg_package proveedor. Compruebe algunos de los recetas en brote para ver algunos ejemplos.

Para auto-actualizar las actualizaciones de seguridad, utilice la opción pivotal_workstation::osx_updates receta. ( Tenga en cuenta que esto utiliza softwareupdate )

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

Hasta donde yo sé, no hay ningún proveedor que pueda actualizar automáticamente las aplicaciones del App Store. Sin embargo, es posible que puedas utilizar la función de actualización automática integrada de algunas aplicaciones dentro de un execute o bash bloque de proveedores. También puede utilizar AppleScript dentro de una receta de chef para automatizar la aplicación del App Store. Para ver algunos ejemplos de uso de AppleScript en línea, eche un vistazo al sprout-osx-settings::function_keys receta. (Algunos otros ejemplos: sprout-osx-settings::remove_expose_keyboard_shortcuts , sprout-osx-settings::set_finder_show_user_home_in_sidebar )

1voto

Alan Storm Puntos 506

No estoy seguro de una solución de tipo AppleScript, pero hay herramientas para gestionar un gran número de sistemas OS X.

La que más conozco es radmind (que comenzó en la UMich para gestionar sus laboratorios (sitio antiguo) ).

radmind está realmente orientado a desplegar una plantilla de SO estándar en un montón de máquinas y mantenerla actualizada, por lo que para un sitio pequeño puede ser un poco demasiado trabajo. El flujo de trabajo básico es:

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

Así que, en el sentido más estricto, no se trata de automatizar la instalación, sino que sólo tienes que hacer la parte interactiva una vez y luego distribuir el sistema operativo actualizado a tus clientes.

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

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