Je voudrais forcer une mise à jour des applications App Store à partir de la ligne de commande.
Comment puis-je faire ceci?
Je voudrais forcer une mise à jour des applications App Store à partir de la ligne de commande.
Comment puis-je faire ceci?
Réponses:
Apple ne fournit pas d'assistance de ligne de commande ni aucune classe de cacao scriptable sur laquelle vous pouvez vous accrocher pour l'automatisation. Contrairement à la mise à jour logicielle globale, qui permet les mises à jour et les installations hors de la boîte, vous pouvez scripter le processus de clic sur les boutons avec une souris à l'aide d'Automator.
Cependant, l'App Store a été rétroconçue et libérée open source ainsi qu'une forme binaire :
L'installation est rapide et semble être assez fiable sur la version actuelle d'OS X 10.11:
brew install argon/mas/mas
Avec la source publiée, je m'attendrais à ce que d'autres implémentations de cet outil apparaissent, peut-être même une scriptée avec python.
Si quelqu'un est connecté au Mac (le gestionnaire de fenêtres est en cours d'exécution), vous pouvez utiliser Automator et la fonction "Watch me do" pour automatiser les mises à jour et stocker le mot de passe de votre magasin dans le script de manière assez peu sûre.
Voici deux tutoriels pour vous aider à démarrer si cela répond à vos besoins.
http://www.tuaw.com/2009/01/19/mac-automation-creating-watch-me-do-workflows/
http://automator.us/leopard/features/virtual-user.html
Une fois que vous avez un script fonctionnel, vous pouvez utiliser la commande de ligne de open
commande pour le lancer.
Si l'application App Store expose cette fonction à des scripts, vous aurez plus d'options à partir de la ligne de commande. Il serait facile à utiliser sdef
, sdp
et gen_bridge_metadata
de vider l'ensemble des choses dictionnaire et de script en utilisant scriptable rubis de la ligne de commande, mais à l' heure actuelle la meilleure option serait d'utiliser l' mas
outil de ligne de commande.
softwareupdate
processus et il se connecte même à l'App Store sur Mountain Lion - mais c'est uniquement pour les applications non App Store.
L'App Store n'est tout simplement pas adapté à l'administration. À peine un gestionnaire de quasi-packages, il n'est pas aussi utile ou fiable que de vrais gestionnaires de packages comme pkgsrc, les ports FreeBSD, aptitude, RPM, macports ou même softwareupdate. D'après mon expérience, il est imprévisible et une barbe pour les développeurs commerciaux de jurer leurs marchandises. Il n'y a donc vraiment qu'une seule façon rationnelle et responsable, en tant qu'administrateur compétent, de travailler avec l'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\)/
Et oubliez-le, cela ne vous dérangera plus. ;-)
Utilisez plutôt ARD, mais pas un gestionnaire de packages, il gère les packages, les installations, les mises à jour et les mises à niveau, il fera ce que vous voulez, vous fera gagner du temps et ne vous laissera pas tomber:
Pour Apple Remote Desktop 3, pour 10.9:
Consultez d'abord le guide d'administration pour vous convaincre que c'est la voie à suivre:
curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf
open ARD3_AdminGuide.pdf
Installez ensuite:
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 /
mais cela peut générer une erreur amusante si vous n'exécutez pas 10.9, ou si aucune version précédente d'ARD n'est installée, et si c'est le cas, essayez:
pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/
ou pour un effet égal (soit / ou ici, pas besoin d'utiliser à la fois pkgutil et xar ... je suis juste en train d'être minutieux):
mkdir ARDexpanded
cd ARDexpanded
xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg
Et nous n'avons plus besoin de l'image disque attachée, alors éjectez-la:
hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/
Et maintenant ce que vous verrez si vous
cd ARDexpanded/RemoteDesktopAdmin372.pkg/
ls
est
Bom PackageInfo Payload Scripts
Le contenu du fichier Payload, qui est une archive cpio compressée avec gzip, est ce que vous recherchez. Donc, avec quelques commandes canalisées, nous pouvons accéder au bundle d'application:
cat Payload | gzip -d - | cpio -id
ls
Retour:
Applications Bom Library PackageInfo Payload Scripts
Et vous avez presque fini.
cp -R Applications/Remote\ Desktop.app /Applications/
Vous avez maintenant installé Apple Remote Desktop Admin 3.7.2
Il ne vous reste donc plus qu'à acheter votre licence:
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
Lancez / Applications / Remote \ Desktop.app et sérialisez. Et faites du travail.
Pour 10.6 Snow Leopard, vous aurez besoin d'une version légèrement antérieure d'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 /
et si cela vous renvoie ceci:
installer: Cannot install on volume / because it is disabled.
installer: This update could not find Remote Desktop on this volume.
puis essayez:
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
descendre jusqu'à la charge utile:
cd ARD353/RemoteDesktopAdmin353.pkg/
ls
Retour:
Bom PackageInfo Payload Scripts
Alors lancez:
cat Payload | gzip -d - | cpio -id
ls
Retour:
Applications Bom Library PackageInfo Payload Scripts
Et vous avez presque terminé:
cp -R Applications/Remote\ Desktop.app /Applications/
achetez votre licence:
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
Lancez / Applications / Remote \ Desktop.app et sérialisez. Et faites quelque chose.
Vous pouvez utiliser l' softwareupdate
outil.
sudo softwareupdate -l
Répertorie toutes les mises à jour disponibles.
sudo softwareupdate -ia
Installe toutes les mises à jour disponibles.