Vorrei forzare un aggiornamento delle applicazioni App Store dalla riga di comando.
Come posso fare questo?
Apple non fornisce un helper per la riga di comando o alcuna classe di cacao con script che è possibile utilizzare per l'automazione. A differenza dell'aggiornamento software generale, che consente aggiornamenti e installazioni pronti all'uso, è possibile eseguire script del processo di selezione dei pulsanti con il mouse tramite Automator.
Tuttavia, l'app store è stato decodificato e rilasciato open source così come un modulo binario :
L'installazione è veloce e sembra abbastanza affidabile sulla versione attuale di OS X 10.11:
brew install argon/mas/mas
Con la sorgente rilasciata, mi aspetterei qualche altra implementazione di questo strumento, forse anche uno script con python.
Se qualcuno è collegato al mac (windowmanager è in esecuzione), è possibile utilizzare Automator e la funzione "watch me do do" per automatizzare gli aggiornamenti e archiviare la password del proprio negozio nello script in modo abbastanza insicuro.
Ecco due tutorial per iniziare se questo soddisfa le tue esigenze.
Una volta che hai uno script funzionante, puoi usare il comando di riga di comando open
per dare il via.
Se l'app di App Store espone tale funzione allo scripting, avrai più opzioni dalla riga di comando. Sarebbe facile usare sdef
, sdp
e gen_bridge_metadata
a scaricare l'intero dizionario e scrivere script usando Ruby dalla riga di comando, ma al momento l'opzione migliore sarebbe utilizzare lo strumento da riga di comando mas
.
L'App Store semplicemente non è adatto per l'amministrazione. A malapena un gestore di quasi pacchetti, non è quasi altrettanto utile o affidabile dei veri e propri gestori di pacchetti come pkgsrc, porte FreeBSD, aptitude, RPM, macports o persino updateupdate. Nella mia esperienza, è imprevedibile e la barba per gli sviluppatori commerciali di impegnare le loro merci. Quindi, c'è un solo modo razionale e responsabile, come amministratore competente, per lavorare 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\)/
E lascia perdere la tua mente, non ti disturberà più. ; -)
Usa ARD invece, sebbene non sia un gestore di pacchetti, gestisce pacchetti, installazioni, aggiornamenti e aggiornamenti, farà ciò che vuoi, ti farà risparmiare tempo e non ti deluderà:
Per Apple Remote Desktop 3, per 10.9:
Per prima cosa controlla la guida all'amministratore per convincerti che questa è la strada da percorrere:
curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf
open ARD3_AdminGuide.pdf
Quindi installa:
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 /
ma potrebbe generare un errore divertente se non si esegue 10.9 o se non è installata alcuna versione precedente di ARD e, in tal caso, provare:
pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/
o con uguale effetto (o / qui, non è necessario utilizzare sia pkgutil che xar ... sto solo approfondendo):
mkdir ARDexpanded
cd ARDexpanded
xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg
E non abbiamo più bisogno dell'immagine del disco, quindi espellilo:
hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/
E ora cosa vedrai se tu
cd ARDexpanded/RemoteDesktopAdmin372.pkg/
ls
è
Bom PackageInfo Payload Scripts
Cosa c'è nel file Payload, che è un archivio cpio compresso con gzip, è ciò che stai cercando. Pertanto, con alcuni comandi inviati tramite pipe, possiamo accedere al pacchetto dell'app:
cat Payload | gzip -d - | cpio -id
ls
restituisce:
Applications Bom Library PackageInfo Payload Scripts
E hai quasi finito.
cp -R Applications/Remote\ Desktop.app /Applications/
Ora hai installato Apple Remote Desktop Admin 3.7.2
Quindi tutto ciò che resta da fare è acquistare la tua licenza:
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
Avvia / Applicazioni / Remoto \ Desktop.app e serializza. E fai un po 'di lavoro.
Per 10.6 Snow Leopard, avrai bisogno di una versione leggermente precedente di 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 /
e se ti restituisce questo:
installer: Cannot install on volume / because it is disabled.
installer: This update could not find Remote Desktop on this volume.
quindi prova:
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
analisi dettagliata del payload:
cd ARD353/RemoteDesktopAdmin353.pkg/
ls
restituisce:
Bom PackageInfo Payload Scripts
Quindi corri:
cat Payload | gzip -d - | cpio -id
ls
restituisce:
Applications Bom Library PackageInfo Payload Scripts
E hai quasi finito:
cp -R Applications/Remote\ Desktop.app /Applications/
acquista la tua licenza:
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
Avvia / Applicazioni / Remoto \ Desktop.app e serializza. E fai qualcosa.
Puoi utilizzare lo strumento softwareupdate
.
sudo softwareupdate -l
Elenca tutti gli aggiornamenti disponibili.
sudo softwareupdate -ia
Installa tutti gli aggiornamenti disponibili.
Leggi altre domande sui tag command-line automation macos mac-appstore