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

28

Come posso programmare l'installazione o l'aggiornamento delle app dal Mac App Store? Preferirei gli strumenti da riga di comando, ma AppleScript o altre API sarebbero sufficienti.

Pezzi di puzzle rilevanti:

  • installer : nota in particolare il flag -store che viene utilizzato per simulare le installazioni di App Store per gli sviluppatori di pacchetti.
  • systemupdate : in grado di gestire gli aggiornamenti delle app Apple, i flag -i installa e -a gli dice di installare tutti gli aggiornamenti disponibili
posta Joseph Holsten 27.02.2012 - 05:03
fonte

4 risposte

13

La maggior parte delle persone può 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 installazioni e aggiornamenti di App Store.

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

Per 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 memorizzare il nome dell'account e la password utilizzando il portachiavi.

La soluzione Apple per patch e aggiornamenti di sicurezza non App Store consiste nell'eseguire lo strumento softwareupdate dalla riga di comando per aggiornare tutto il software che Apple intende installare senza l'intervento dell'utente o passando attraverso l'interfaccia utente di App Store.

Attualmente su Lion and Mountain Lion: ciò significa che il Mac colpirà un server OS X locale che sta scaricando nella cache i download per gli aggiornamenti di sistema e il software installato all'esterno dell'App Store. Ovviamente, se non si dispone di un server di aggiornamento software locale, questo scaricherà i file direttamente da Apple.

Per Mountain Lion 10.8.2 e versioni precedenti, - tutto viene ancora distribuito tramite App Store - quindi il software Apple come gli aggiornamenti OS X è completamente programmabile tramite questo strumento solo per gli aggiornamenti e gli aggiornamenti non App Store.

Ciò che non è scriptable (ancora o forse mai) sono app installate da App Store come Xcode e Pages e applicazioni di terze parti. Ciò significa che non è possibile avere uno solo 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 poi copiare l'app su più mac finché l'ID Apple utilizzato per scaricare la prima copia dell'app viene anche utilizzato 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 poi distribuiscono un file a tutti i Mac in modo che, una volta completato il download, uno strumento come Apple Remote Desktop o Caspar o uno strumento fatto in casa come scp o rsync è usato per spostare la versione aggiornata dell'app su tutti i Mac in laboratorio.

Se segui la strada 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 abbia dimestichezza con tutte le password e con lo scripting dell'interfaccia utente dove AppleScript può immettere il nome utente e la password corretti in modo programmatico e quindi fare clic sul pulsante per avviare il processo di download per gli aggiornamenti di ciascuna macchina. Il modo in cui le app store app sono firmate in codice rende difficile inserire semplicemente un aggiornamento senza invalidare il pacchetto o in qualche modo annullare la progettazione / jailbreaking dell'intero processo di app store e aggirare il normale flusso di lasciare che l'installer app funzioni.

    
risposta data 12.09.2012 - 17:23
fonte
5

Questo è possibile usando l'open source mas utilità della riga di comando:

mas-cli

A simple command line interface for the Mac App Store. Designed for scripting and automation.

Divulgazione: sono il creatore di mas

    
risposta data 15.02.2016 - 19:56
fonte
3

Puoi controllare sprout-wrap e solista . Puoi installare i pacchetti OSX da un uri usando il provider dmg_package . Consulta alcuni ricette in germoglio per alcuni esempi.

Per aggiornare automaticamente gli aggiornamenti di sicurezza, utilizza pivotal_workstation :: osx_updates ricetta. ( Tieni presente che questo utilizza softwareupdate )

Per le app Homebrew , il brew provider ha un'azione upgrade .

Per quanto ne so, non esiste un fornitore che aggiorni automaticamente le app dell'App Store. Tuttavia, potresti essere in grado di utilizzare la funzionalità di aggiornamento automatico integrata di alcune app all'interno di un blocco di provider execute o bash . Potresti anche essere in grado di utilizzare AppleScript all'interno di una ricetta per chef per automatizzare l'app App Store. Per alcuni esempi di utilizzo di AppleScript in linea, dai un'occhiata al sprout -osx-settings :: function_keys ricetta. (Alcuni altri esempi: sprout-osx-settings :: remove_expose_keyboard_shortcuts , sprout-osx-settings :: set_finder_show_user_home_in_sidebar )

    
risposta data 15.06.2013 - 00:50
fonte
1

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

Quello che mi è più familiare è radmind (che è iniziato a UMich per la gestione dei propri laboratori (old site) ).

radmind è davvero orientato verso l'implementazione di un modello di OS standard su un gruppo di macchine e il suo aggiornamento, quindi per un sito di piccole dimensioni potrebbe essere un po 'troppo lavoro. Il flusso di lavoro di base è:

  • Crea una "build machine" pulita e installa radmind & tutto il tuo software standard.
  • Crea trascrizioni radmind per quella macchina build.
  • Installa radmind sulle macchine client e carica / applica le trascrizioni per installarle.
  • Per gli aggiornamenti, aggiorna il server di build e apporta una trascrizione di aggiornamento / patch, quindi applicala ai client.

... Quindi, nel senso più stretto, non è l'automazione dell'installazione, ma devi solo fare il bit interattivo una volta e poi distribuire il SO aggiornato ai tuoi clienti.

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

    
risposta data 02.03.2012 - 18:42
fonte

Leggi altre domande sui tag