¿Cómo puedo crear scripts 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-store
indicador que se utiliza para simular las instalaciones de App Store para desarrolladores de paquetes.systemupdate
: capaz de manejar actualizaciones de aplicaciones de Apple, marca las-i
instalaciones y-a
le dice que instale todas las actualizaciones disponibles
macos
mac-appstore
command-line
automator
code-signing
Joseph Holsten
fuente
fuente
Respuestas:
La mayoría de las personas pueden 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 la Mac App Store desde la línea de comandos es mas :
Instalar:
Una vez que esté activado, puede actualizar todas las aplicaciones que están disponibles con:
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 cuenta y la contraseña utilizando el llavero.
La solución de Apple para los parches y actualizaciones de seguridad 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 o 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 está almacenando en caché las descargas para 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 sigue llegando a través de la App Store, por lo que el software de Apple, como las actualizaciones de OS X, es totalmente programable utilizando esta herramienta solo para actualizaciones y actualizaciones que no son de la App Store.
Lo que no es programable (todavía o tal vez nunca) son aplicaciones que se instalan desde la App Store como Xcode y Pages y aplicaciones de terceros. Esto significa que no puede simplemente tener una 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 varios Mac, siempre que la ID de Apple utilizada para descargar la primera copia de la aplicación también se use en todos los Macs 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 asiento, 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 o una herramienta casera como
scp
orsync
se utiliza para mover la versión actualizada de la aplicación a todos los Mac en el laboratorio.Si sigue la ruta de la ID de Apple individual para cada máquina, no podrá ejecutar 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 conociendo todas las contraseñas y realizando scripts de interfaz de usuario donde AppleScript pueda ingrese el nombre de usuario y contraseña correctos mediante programación y luego haga 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 están firmadas con código hace que sea difícil simplemente deslizar 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 permitir que el instalador de la aplicación haga su trabajo.
fuente
Esto es posible utilizando la
mas
utilidad de línea de comandos de código abierto :Divulgación: soy el creador de
mas
fuente
Es posible que desee ver brotes de envoltura y solista . Puede instalar paquetes OSX desde una uri utilizando 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, use la receta pivotal_workstation :: osx_updates . ( Tenga en cuenta que esto utiliza
softwareupdate
)Para las aplicaciones Homebrew , el
brew
proveedor tiene unaupgrade
acción.Hasta donde yo sé, no hay un proveedor para actualizar automáticamente las aplicaciones de la 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
execute
obash
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 )fuente
No estoy seguro acerca de una solución de tipo AppleScript, pero existen herramientas para administrar grandes cantidades de sistemas OS X.
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 montón 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:
… Entonces, en el sentido más estricto, no está automatizando la instalación, sino que 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 todos especiales y únicos, esta podría no ser una gran solución.
fuente
radmind
sería "Instalar la aplicación en su máquina de plantillas y actualizar la transcripción". (Sigue siendo una instalación manual, pero una instalación manual en lugar de 1000.)