18 votos

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

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

¿Cómo puedo hacer esto?

2 votos

No parece haber un ayudante de línea de comandos como en la actualización general del software, por lo que es posible que te veas limitado a ejecutar un script que automatice los comandos de la GUI. ¿Podrías editar la pregunta para aclarar si esperas que la solución "funcional" sea solamente a través de la terminal o si estás buscando un script de Automator que introduzca tu contraseña cuando se requiera.

0 votos

Estoy buscando algo sin supervisión, aún si esto requiere el AppleID id/password, estoy de acuerdo en incluirlo en el script.

1 votos

También consulta apple.stackexchange.com/questions/42353/… para obtener una solución que llama a una aplicación de terceros.

7voto

Oskar Puntos 1242

Apple no suministra un ayudante de línea de comandos ni ninguna clase de cocoa scriptable a la que puedas aferrarte para automatización. A diferencia de la actualización de software en general, que permite actualizaciones e instalaciones listas para usar, puedes automatizar el proceso de hacer clic en botones con un ratón usando Automator.

Sin embargo, la tienda de aplicaciones ha sido hackeada y publicada en código abierto así como en forma binaria:

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

brew install argon/mas/mas 

Con el código fuente liberado, esperaría que aparezcan algunas otras implementaciones de esta herramienta, quizás incluso una scripteada con python.

Si alguien está conectado a la mac (el windowmanager está funcionando), puedes usar Automator y la función "watch me do" para automatizar actualizaciones y almacenar tu contraseña de la tienda de forma bastante insegura en el script.

Aquí hay dos tutoriales para ayudarte a empezar si esto satisface tus 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 tengas un script funcional, puedes usar el comando open en la línea de comandos para iniciar el proceso.

Si la aplicación App Store alguna vez expone esa función a scripting, tendrás más opciones desde la línea de comandos. Sería fácil usar sdef, sdp y gen_bridge_metadata para descargar el diccionario completo scriptable y scriptar cosas 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 mas.

1 votos

¡Vaya, esto es realmente molesto. Las actualizaciones de software habituales son fácilmente scriptables utilizando softwareupdate(8).

2 votos

Solo quería señalar para que quede constancia: está claro que Apple ha decidido conscientemente dificultar/no proporcionar ninguna herramienta o gancho o asistencia para automatizar las instalaciones y actualizaciones de la App Store. El sistema central todavía tiene el proceso softwareupdate e incluso se conecta a la App Store en Mountain Lion, pero solo es para aplicaciones que no sean de la App Store.

4voto

chillin Puntos 1997

La App Store simplemente no es adecuada para la administración. Apenas un gestor de paquetes cuasi, no es ni de lejos tan útil ni confiable como los verdaderos gestores de paquetes como pkgsrc, FreeBSD ports, aptitude, RPM, macports o incluso softwareupdate. En mi experiencia, es impredecible y una pantalla para que los desarrolladores comerciales ofrezcan sus productos. Por lo tanto, realmente solo hay una forma racional y responsable, como administrador competente, de trabajar con la 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 simplemente olvídalo, ya no te molestará más. ;-)


En lugar de eso, usa ARD, aunque no sea un gestor de paquetes, gestiona paquetes, instalaciones, actualizaciones y mejoras, hará lo que quieras, te ahorrará tiempo y no te defraudará:

Para Apple Remote Desktop 3, para 10.9:

Primero, consulta la guía de administración para convencerte 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 instala:

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 producir un error divertido si no estás ejecutando la versión 10.9, o si no hay una versión previa de ARD instalada, y si lo hace, intenta:

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

o para el mismo efecto (aquí es uno u otro, no necesitas usar ambos pkgutil y xar... simplemente estoy siendo minucioso):

mkdir ARDexpanded

cd ARDexpanded

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

Y ya no necesitamos la imagen de disco adjunta, así que expúlsala:

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 hay en el archivo Payload, que es un archivo cpio comprimido con gzip, es lo que buscas. Así que con algunos comandos piped podremos llegar a la aplicación:

cat Payload | gzip -d - | cpio -id

ls

devuelve:

    Applications Bom          Library      PackageInfo  Payload      Scripts

Y casi has terminado.

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

Ahora has instalado Apple Remote Desktop Admin 3.7.2

Así que todo lo que queda por hacer es comprar 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

Inicia /Applications/Remote\ Desktop.app y activa la licencia. Y ponte a trabajar.


Para 10.6 Snow Leopard, necesitarás 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

busca en Payload:

    cd ARD353/RemoteDesktopAdmin353.pkg/

    ls

devuelve:

    Bom         PackageInfo Payload     Scripts

Entonces ejecuta:

cat Payload | gzip -d - | cpio -id

ls

devuelve:

Applications Bom          Library      PackageInfo  Payload      Scripts

Y casi has terminado:

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

Inicia /Applications/Remote\ Desktop.app y activa la licencia. Y haz algo productivo.

1 votos

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

1voto

Chris E. Puntos 64

Puedes usar la herramienta softwareupdate.

sudo softwareupdate -l

Enumera todas las actualizaciones disponibles.

sudo softwareupdate -ia

Instala todas las actualizaciones disponibles.

0 votos

Esto no funciona para aplicaciones de la Appstore, solo para paquetes de Apple.

0 votos

Intenta también: man softwareupdate

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