¿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 -store
bandera 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 -i
instalaciones y -a
le dice que instale todas las actualizaciones disponiblesLa 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 softwareupdate
herramienta 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 scp
o rsync
se 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.
mas
Esto 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
Es posible que desee ver sprout-wrap y solist . Puede instalar paquetes OSX desde un uri usando el dmg_package
proveedor. 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 brew
proveedor tiene una upgrade
acció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 execute
de bash
proveedor. 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:
… 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.
radmind
serí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).
bmike
José Holsten
bmike