¿Cómo actualizar la aplicación App Store desde la línea de comandos?

Me gustaría forzar una actualización de las aplicaciones de la App Store desde la línea de comandos.

¿Cómo puedo hacer esto?

No parece haber un ayudante de línea de comandos como la actualización general del software, por lo que puede limitarse a iniciar un script que automatice los comandos de la GUI. ¿Editaría la pregunta para aclarar si espera que la solución "funcional" sea solo una terminal o si lo que está buscando es un script de Automator que ingresará su contraseña cuando se le solicite?
Estoy buscando algo desatendido, aún así, si esto requiere la identificación/contraseña de AppleID, me parece bien incluirlo en el script.
Consulte también apple.stackexchange.com/questions/42353/… para obtener una solución que llama a una aplicación de terceros

Respuestas (3)

Apple no proporciona un asistente de línea de comandos ni ninguna clase de cacao programable a la que pueda aferrarse para la automatización. A diferencia de la actualización de software general, que permite actualizaciones e instalaciones listas para usar, puede programar el proceso de hacer clic en los botones con un mouse usando Automator.

Sin embargo, la tienda de aplicaciones se ha diseñado de forma inversa y ha lanzado código abierto , así como una forma binaria :

La instalación es rápida y parece bastante fiable en la versión actual de OS X 10.11:

brew install argon/mas/mas 

Con la fuente publicada, esperaría que aparecieran otras implementaciones de esta herramienta, tal vez incluso una con script con python.

Si alguien ha iniciado sesión en la mac (el administrador de ventanas se está ejecutando), puede usar Automator y la función "ver cómo lo hago" para automatizar las actualizaciones y almacenar la contraseña de su tienda en el script de manera bastante insegura.

Aquí hay dos tutoriales para que pueda comenzar si esto satisface sus necesidades.

http://www.tuaw.com/2009/01/19/mac-automation-creating-watch-me-do-workflows/

http://automator.us/leopard/features/virtual-user.html

Una vez que tenga un script de trabajo, puede usar el comando de línea de opencomandos para iniciarlo.

Si la aplicación App Store alguna vez expone esa función a secuencias de comandos, tendrá más opciones desde la línea de comandos. Sería fácil de usar , sdefy sdpvolcar todo el diccionario de secuencias de comandos y secuencias de comandos usando Ruby desde la línea de comandos, pero en la actualidad, la mejor opción sería usar la herramienta de línea de comandos.gen_bridge_metadatamas

Vaya, esto es realmente molesto. Las actualizaciones de software habituales se pueden programar fácilmente mediante softwareupdate(8).
Solo quería dejar constancia: está claro que Apple ha decidido conscientemente dificultarlo / no proporcionar ninguna herramienta, gancho o asistencia para automatizar las instalaciones y actualizaciones de la App Store. El sistema central todavía tiene el softwareupdateproceso e incluso se conecta a la App Store en Mountain Lion, pero es solo para aplicaciones que no son de la App Store.

La App Store simplemente no es adecuada para la administración. Apenas un administrador de cuasi-paquetes, no es tan útil o confiable como los administradores de paquetes reales como pkgsrc, puertos FreeBSD, aptitude, RPM, macports o incluso softwareupdate. En mi experiencia, es impredecible y una barba para los desarrolladores comerciales empeñar sus productos. Así que en realidad solo hay una forma racional y responsable, como administrador competente, de trabajar con App Store:

 sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.store_helper.plist

 sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.storeagent.plist

 sudo mkdir /System/Library/LaunchAgents\ \(disabled\)/

 sudo mv /System/Library/LaunchAgents/com.apple.store* /System/Library/LaunchAgents\ \(disabled\)/

Y olvídalo de tu mente, ya no te molestará más. ;-)


Utilice ARD en su lugar, aunque no es un administrador de paquetes, administra paquetes, instalaciones, actualizaciones y actualizaciones, hará lo que quiera, le ahorrará tiempo y no lo defraudará:

Para Apple Remote Desktop 3, para 10.9:

Consulte primero la guía de administración para convencerse de que este es el camino a seguir:

curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf

    open ARD3_AdminGuide.pdf

Luego instale:

curl -Ok http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/031-2845.20140313.rerft/RemoteDesktopAdmin372.dmg

hdiutil attach -quiet -noverify -nobrowse -noautoopen RemoteDesktopAdmin372.dmg

sudo installer -pkg /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg -target /

pero eso podría arrojar un error divertido si no se ejecuta 10.9, o si no está instalada una versión anterior de ARD, y si es así, intente:

pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/

o con el mismo efecto (ya sea/o aquí, no es necesario usar pkgutil y xar ... solo estoy siendo minucioso):

mkdir ARDexpanded

cd ARDexpanded

xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg

Y ya no necesitamos adjuntar la imagen del disco, así que expúlselo:

hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/

Y ahora lo que verás si

cd ARDexpanded/RemoteDesktopAdmin372.pkg/

ls

es

    Bom         PackageInfo Payload     Scripts

Lo que está en el archivo Payload, que es un archivo cpio comprimido con gzip, es lo que está buscando. Entonces, con algunos comandos canalizados podemos llegar al paquete de aplicaciones:

cat Payload | gzip -d - | cpio -id

ls

devoluciones:

    Applications Bom          Library      PackageInfo  Payload      Scripts

Y ya casi terminas.

cp -R Applications/Remote\ Desktop.app /Applications/

Ahora ha instalado Apple Remote Desktop Admin 3.7.2

Así que todo lo que queda por hacer es comprar su licencia:

open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat

Inicie /Applications/Remote\ Desktop.app y serialice. Y haz algo de trabajo.


Para 10.6 Snow Leopard, necesitará una versión ligeramente anterior de ARD:

curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf

curl -Ok http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/041-6789.20120917.xD6TR/RemoteDesktopAdmin353.dmg

hdiutil attach -quiet -noverify -nobrowse -noautoopen RemoteDesktopAdmin353.dmg

sudo installer -pkg /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update/RemoteDesktopAdmin353.pkg -target /

y si te devuelve esto:

    installer: Cannot install on volume / because it is disabled.
    installer: This update could not find Remote Desktop on this volume.

entonces intenta:

pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update/RemoteDesktopAdmin353.pkg ARD353

hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update

profundizar en la carga útil:

    cd ARD353/RemoteDesktopAdmin353.pkg/

    ls

devoluciones:

    Bom         PackageInfo Payload     Scripts

Así que ejecuta:

cat Payload | gzip -d - | cpio -id

ls

devoluciones:

Applications Bom          Library      PackageInfo  Payload      Scripts

Y ya casi terminas:

cp -R Applications/Remote\ Desktop.app /Applications/

compra tu licencia:

open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat

Inicie /Applications/Remote\ Desktop.app y serialice. Y haz algo.

Gran respuesta, aprendí un montón de cosas nuevas que puedo hacer en la Terminal. +1

Puedes usar la softwareupdateherramienta.

sudo softwareupdate -l

Enumera todas las actualizaciones disponibles.

sudo softwareupdate -ia

Instala todas las actualizaciones disponibles.

Esto no funciona para las aplicaciones de la tienda de aplicaciones, solo para los paquetes de Apple.
prueba también: man softwareupdate