Le installazioni e gli aggiornamenti del Mac App Store possono essere automatizzati?


28

Come posso installare script o aggiornare app dal Mac App Store? Preferirei gli strumenti da riga di comando, ma sarebbe sufficiente AppleScript o qualche altra API.

Pezzi del puzzle rilevanti:

  • installer: nota in particolare il -storeflag utilizzato per simulare le installazioni dell'App Store per gli sviluppatori di pacchetti.
  • systemupdate: in grado di gestire gli aggiornamenti delle app Apple, -iinstalla flag e gli -adice di installare tutti gli aggiornamenti disponibili

Le tue app sono state acquistate con un ID Apple o stai monitorando un ID Apple individuale per ogni macchina?
bmike

@bmike: mi farebbe comodo usare un ID Apple condiviso o univoco per ogni macchina
Joseph Holsten,

Supponendo che MacWorld abbia ragione, Mountain Lion deprezza il servizio di aggiornamento del software e tutto ciò avviene attraverso il Mac App Store, gestirlo sarà una sfida per gruppi di lavoro e aziende. Mi chiedo se Apple Configurator potrebbe espandersi per aiutare a gestire gli account e Remote Desktop potrebbe essere in grado di dare il via agli aggiornamenti senza disturbare gli utenti fino a quando un riavvio applica gli aggiornamenti.
bmike

Risposte:


13

Molte persone possono semplicemente attivare gli aggiornamenti automatici e lasciare che Apple gestisca tutti gli aggiornamenti. Se c'è un motivo per cui non puoi o non vuoi farlo, esiste uno strumento da riga di comando per automatizzare le installazioni e gli aggiornamenti dell'App Store.

Un notevole strumento open source per replicare il Mac App Store dalla riga di comando è mas :

Installare:

brew install mas 

Una volta entrato, puoi aggiornare tutte le app disponibili con:

mas upgrade

Se non vuoi fidarti del software di terze parti con il tuo ID Apple, puoi anche automatizzare l'interfaccia utente e archiviare il nome account e la password utilizzando il portachiavi.

La soluzione Apple per le patch e gli aggiornamenti di sicurezza non dell'App Store è eseguire lo softwareupdatestrumento dalla riga di comando per aggiornare tutto il software che Apple intende installare senza l'intervento dell'utente o tramite l'interfaccia utente dell'App Store.

Attualmente su Lion e Mountain Lion: ciò significa che il Mac raggiungerà un server OS X locale che memorizza nella cache i download per gli aggiornamenti di sistema e il software installato al di fuori dell'App Store. Se non si dispone di un server di aggiornamento software locale, ovviamente scaricherà i file direttamente da Apple.

Per Mountain Lion 10.8.2 e versioni precedenti, tutto passa ancora attraverso l'App Store, quindi il software Apple come gli aggiornamenti OS X è completamente scriptabile utilizzando questo strumento solo per gli aggiornamenti e non per gli App Store.

Ciò che non è scriptabile (ancora o forse mai) sono app installate dall'App Store come Xcode e Pages e applicazioni di terze parti. Ciò significa che non puoi avere solo uno strumento per aggiornare tutto il software senza aprire l'app App Store e inserire una password nella schermata dell'interfaccia utente.

Quello che puoi fare è scaricare le app una volta e quindi copiare l'app su più Mac, a condizione che l'ID Apple utilizzato per scaricare la prima copia dell'app sia utilizzato anche su tutti i Mac che eseguiranno l'app.

Conosco diverse istituzioni che acquistano una copia di ogni app per un laboratorio di 20 computer per ottenere una licenza per ogni posto, ma quindi distribuire un file su tutti i Mac in modo che una volta completato un download di aggiornamento, uno strumento come Apple Remote Desktop o Caspar o uno strumento fatto in casa come scpo rsyncviene utilizzato per spostare la versione aggiornata dell'app su tutti i Mac del laboratorio.

Se segui il percorso del singolo ID Apple per ogni macchina, non sarai in grado di creare script per l'installazione degli aggiornamenti delle app poiché ognuno richiederà la password per ciascun account a meno che tu non sia a tuo agio conoscendo tutte le password e eseguendo gli script dell'interfaccia utente dove AppleScript può inserire il nome utente e la password corretti a livello di codice e quindi fare clic sul pulsante per iniziare il processo di download per gli aggiornamenti di ogni macchina. Il modo in cui le app di app store sono firmate in codice rende difficile semplicemente scorrere un aggiornamento senza invalidare il pacchetto o in qualche modo decodificare / eseguire il jailbreak dell'intero processo dell'app store e eludere il normale flusso di lasciare che il programma di installazione dell'app funzioni.


6

Ciò è possibile utilizzando l' masutilità della riga di comando open source :

mas-cli

Una semplice interfaccia a riga di comando per il Mac App Store. Progettato per lo scripting e l'automazione.

Divulgazione: sono il creatore di mas


Grazie mille per quello strumento e pubblicandolo qui. È passato molto tempo e spero che Apple mantenga stabile l'API / SDK per consentire allo strumento di continuare a funzionare nel tempo.
bmike

3

Potresti voler dare un'occhiata a sprout-wrap e solista . È possibile installare i pacchetti OSX da un uri utilizzando il dmg_packageprovider. Scopri alcune delle ricette in germoglio per alcuni esempi.

Per aggiornare automaticamente gli aggiornamenti di sicurezza, utilizzare la ricetta pivotal_workstation :: osx_updates . ( Nota che questo usasoftwareupdate )

Per le app Homebrew , il brewprovider ha upgradeun'azione.

Per quanto ne so, non esiste un provider per l'aggiornamento automatico delle app dell'App Store. Tuttavia, potresti essere in grado di utilizzare la funzione di aggiornamento automatico integrata di alcune app all'interno di un blocco executeo bashprovider. Potresti anche essere in grado di utilizzare AppleScript all'interno di una ricetta cuoco per automatizzare l'app App Store. Per alcuni esempi di utilizzo di AppleScript in linea, dai un'occhiata alla ricetta sprout-osx-settings :: function_keys . (Alcuni altri esempi: sprout-osx-settings :: remove_expose_keyboard_shortcuts , sprout-osx-settings :: set_finder_show_user_home_in_sidebar )


1

Non sono sicuro di una soluzione di tipo AppleScript, ma esistono strumenti per la gestione di un gran numero di sistemi OS X.

Quello con cui ho più familiarità è radmind (che è iniziato a UMich per la gestione dei loro laboratori (vecchio sito) ).

radmind è davvero orientato alla distribuzione di un modello di sistema operativo standard su un gruppo di macchine e al suo aggiornamento, quindi per un piccolo sito potrebbe essere un po 'troppo lavoro. Il flusso di lavoro di base è:

  • Crea una "macchina per costruire" pulita e installa radmind e tutto il tuo software standard.
  • Crea trascrizioni radmind per quella macchina build.
  • Installa radmind sui tuoi computer client e tira / applica le trascrizioni per installarle.
  • Per gli aggiornamenti, aggiorna il server di compilazione ed effettua una trascrizione di aggiornamento / patch, quindi applicala ai client.

... Quindi, nel senso più stretto, non sta automatizzando l'installazione, ma devi solo fare il bit interattivo una volta e quindi distribuire il sistema operativo aggiornato ai tuoi client.

Ovviamente funziona meglio se puoi installare un set di software standard ovunque - Se i tuoi clienti sono tutti speciali e unici, questa potrebbe non essere un'ottima soluzione.


1
Sto cercando di automatizzare questo processo all'interno di chef, che è uno strumento di automazione del sistema come Radmind. Il problema è che questi strumenti non possono installare app dal Mac App Store.
Joseph Holsten,

1
@JosephHolsten La procedura con radmindsarebbe "Installa l'applicazione sul tuo modello di macchina e aggiorna la trascrizione". (Ancora un'installazione manuale, ma un'installazione manuale anziché 1000.)
voretaq7
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.