Les installations et mises à niveau du Mac App Store peuvent-elles être automatisées?

28

Comment puis-je installer des scripts ou mettre à niveau des applications depuis le Mac App Store? Je préfère les outils de ligne de commande, mais AppleScript ou une autre API suffirait.

Pièces de puzzle pertinentes:

  • installer: notez en particulier l' -storeindicateur qui est utilisé pour simuler les installations de l'App Store pour les développeurs de packages.
  • systemupdate: capable de gérer les mises à jour des applications Apple, signale les -iinstallations et lui -adit d'installer toutes les mises à jour disponibles
Joseph Holsten
la source
Vos applications sont-elles achetées avec un identifiant Apple ou suivez-vous un identifiant Apple individuel pour chaque machine?
bmike
@bmike: Je serais à l'aise d'utiliser un identifiant Apple partagé ou un identifiant unique pour chaque machine
Joseph Holsten
En supposant que MacWorld a raison de dire que Mountain Lion déconseille le service de mise à jour logicielle et que tout se fait via le Mac App Store, la gestion de ce sera un défi pour les groupes de travail et les entreprises. Je me demande si le configurateur Apple pourrait s'étendre pour aider à gérer les comptes et Remote Desktop pourrait être en mesure de lancer les mises à jour sans déranger les utilisateurs jusqu'à ce qu'un redémarrage applique les mises à jour.
bmike

Réponses:

13

La plupart des gens peuvent simplement activer les mises à jour automatiques et laisser Apple gérer toutes les mises à jour. S'il y a une raison pour laquelle vous ne pouvez pas ou ne voulez pas le faire, un outil de ligne de commande existe pour automatiser les installations et les mises à jour de l'App Store.

Un outil open source notable pour répliquer le Mac App Store à partir de la ligne de commande est mas :

À installer:

brew install mas 

Une fois qu'il est entré, vous pouvez mettre à jour toutes les applications disponibles avec:

mas upgrade

Si vous ne voulez pas faire confiance à un logiciel tiers avec votre identifiant Apple, vous pouvez également automatiser votre interface utilisateur et stocker le nom et le mot de passe du compte à l'aide du trousseau.

La solution Apple pour les correctifs de sécurité et les mises à jour non App Store consiste à exécuter l' softwareupdateoutil à partir de la ligne de commande pour mettre à jour tous les logiciels qu'Apple a l'intention d'installer sans l'intervention de l'utilisateur ou via l'interface utilisateur de l'App Store.

Actuellement sur Lion et Mountain Lion - cela signifie que le Mac frappera un serveur OS X local qui met en cache les téléchargements pour les mises à jour système et les logiciels installés en dehors de l'App Store. Si vous ne disposez pas d'un serveur de mise à jour logicielle local, il télécharge bien sûr les fichiers directement depuis Apple.

Pour Mountain Lion 10.8.2 et inférieur, - tout vient toujours de l'App Store - donc le logiciel Apple comme les mises à jour OS X est entièrement scriptable en utilisant cet outil pour les mises à jour et les mises à jour non App Store uniquement.

Ce qui n'est pas scriptable (encore ou peut-être jamais), ce sont les applications installées à partir de l'App Store, comme Xcode et Pages et les applications tierces. Cela signifie que vous ne pouvez pas avoir un seul outil pour mettre à jour tous les logiciels sans ouvrir l'application App Store et entrer un mot de passe sur l'écran de l'interface utilisateur.

Ce que vous pouvez faire est de télécharger les applications une fois, puis de copier l'application sur plusieurs macs tant que l'identifiant Apple utilisé pour télécharger la première copie de l'application est également utilisé sur tous les Mac qui exécuteront l'application.

Je connais plusieurs institutions qui achètent une copie de chaque application pour un laboratoire de 20 ordinateurs pour obtenir une licence pour chaque siège, mais déploient ensuite un fichier sur tous les Mac afin qu'un téléchargement d'une mise à jour soit effectué, un outil comme Apple Remote Desktop ou Caspar ou un outil fait maison comme scpou rsyncest utilisé pour déplacer la version mise à jour de l'application sur tous les Mac du laboratoire.

Si vous suivez la route de l'identifiant Apple individuel pour chaque machine, vous ne pourrez pas créer de script pour l'installation des mises à jour de l'application, car chacun demandera le mot de passe pour chaque compte, sauf si vous êtes à l'aise de connaître tous les mots de passe et d'effectuer des scripts d'interface utilisateur là où AppleScript peut entrez le nom d'utilisateur et le mot de passe corrects par programme, puis cliquez sur le bouton pour commencer le processus de téléchargement des mises à jour de chaque machine. La façon dont les applications de l'App Store sont signées de code rend difficile de simplement insérer une mise à jour sans invalider le package ou en quelque sorte inverser l'ingénierie / jailbreaker l'ensemble du processus de l'App Store et contourner le flux normal de laisser le programme d'installation de l'application faire son travail.

bmike
la source
6

Ceci est possible en utilisant l' masutilitaire de ligne de commande open source :

mas-cli

Une interface de ligne de commande simple pour le Mac App Store. Conçu pour les scripts et l'automatisation.

Divulgation: je suis le créateur de mas

argon
la source
Un grand merci pour cet outil et l'avoir affiché ici. Cela fait longtemps et j'espère qu'Apple maintient la stabilité de l'API / SDK pour permettre à l'outil de continuer à fonctionner au fil du temps.
bmike
3

Vous voudrez peut-être vérifier le sprout-wrap et le soliste . Vous pouvez installer des packages OSX à partir d'un uri à l'aide du dmg_packagefournisseur. Découvrez quelques-unes des recettes dans sprout pour quelques exemples.

Pour mettre à jour automatiquement les mises à jour de sécurité, utilisez la recette pivotal_workstation :: osx_updates . ( Notez que cela utilisesoftwareupdate )

Pour les applications Homebrew , le brewfournisseur a une upgradeaction.

Pour autant que je sache, il n'y a pas de fournisseur pour mettre à jour automatiquement les applications App Store. Cependant, vous pouvez peut-être utiliser la fonction de mise à jour automatique intégrée de certaines applications dans un bloc executeou un bashfournisseur. Vous pouvez également utiliser AppleScript dans une recette de chef pour automatiser l'application App Store. Pour quelques exemples d'utilisation d'AppleScript en ligne, jetez un œil à la recette sprout-osx-settings :: function_keys . (Quelques autres exemples: sprout-osx-settings :: remove_expose_keyboard_shortcuts , sprout-osx-settings :: set_finder_show_user_home_in_sidebar )

TrinitronX
la source
1

Je ne suis pas sûr d'une solution de type AppleScript, mais il existe des outils pour gérer un grand nombre de systèmes OS X.

Celui que je connais le plus est radmind (qui a commencé à UMich pour gérer leurs laboratoires (ancien site) ).

radmind est vraiment orienté vers le déploiement d'un modèle de système d'exploitation standard sur un tas de machines et sa mise à jour, donc pour un petit site, cela peut être un peu trop de travail. Le workflow de base est le suivant:

  • Faites une "machine de construction" propre et installez radmind et tous vos logiciels standard.
  • Créez des transcriptions radmind pour cette machine de génération.
  • Installez radmind sur vos machines clientes et tirez / appliquez les transcriptions pour les installer.
  • Pour les mises à jour, mettez à jour le serveur de build et effectuez une transcription de mise à jour / correctif, puis appliquez-le aux clients.

… Donc, au sens strict, il ne s'agit pas d'automatiser l'installation, mais vous ne devez effectuer le bit interactif qu'une seule fois, puis distribuer le système d'exploitation mis à jour à vos clients.

De toute évidence, cela fonctionne mieux si vous pouvez installer un ensemble de logiciels standard partout - Si vos clients sont tous spéciaux et uniques, cela pourrait ne pas être une excellente solution.

voretaq7
la source
1
J'essaie d'automatiser ce processus pour au sein de chef, qui est un outil d'automatisation du système comme radmind. Le problème est qu'il n'y a aucun moyen pour ces outils d'installer des applications à partir du Mac App Store.
Joseph Holsten
1
@JosephHolsten La procédure avec radmindserait "Installer l'application sur votre machine modèle et mettre à jour la transcription". (Toujours une installation manuelle, mais une installation manuelle au lieu de 1000.)
voretaq7