31 votes

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

Comment puis-je script installer ou mettre à niveau des applications à partir du Mac App Store ? Je préférerais des outils en ligne de commande, mais AppleScript ou une autre API suffirait.

Des pièces de puzzle pertinentes :

  • installer : notez en particulier le -store qui est utilisé pour simuler les installations de l'App Store pour les développeurs de paquets.
  • systemupdate : capable de gérer les mises à jour des applications Apple, les drapeaux -i installe et -a lui dit d'installer toutes les mises à jour disponibles

0 votes

Vos applications sont-elles achetées avec un seul identifiant Apple ou suivez-vous un identifiant Apple individuel pour chaque machine.

0 votes

@bmike : Je serais à l'aise en utilisant un identifiant Apple partagé ou unique pour chaque machine.

0 votes

En supposant que MacWorld ait raison de dire que Mountain Lion supprime le service de mise à jour des logiciels et que tout passe par le Mac App Store, la gestion de ce système sera un défi pour les groupes de travail et les entreprises. Je me demande si l'Apple Configurator ne pourrait pas être étendu pour aider à gérer les comptes et si Remote Desktop ne pourrait pas être en mesure de lancer les mises à jour sans déranger les utilisateurs jusqu'à ce qu'un redémarrage applique les mises à jour.

14voto

Oskar Points 1242

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 ou ne voulez pas le faire, il existe un outil en ligne de commande pour automatiser les installations et les mises à jour de l'App Store.

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

Pour l'installer :

brew install mas 

Une fois qu'il est en place, vous pouvez mettre à jour toutes les applications qui sont disponibles avec :

mas upgrade

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

La solution d'Apple pour les correctifs de sécurité et les mises à jour ne provenant pas de l'App Store est d'exécuter le programme softwareupdate à partir de la ligne de commande pour mettre à jour tous les logiciels qu'Apple souhaite installer sans intervention de l'utilisateur et sans passer par l'interface utilisateur de l'App Store.

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

Pour Mountain Lion 10.8.2 et les versions inférieures, - tout passe encore par l'App Store - donc les logiciels Apple comme les mises à jour d'OS X sont entièrement scriptables 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) sont des applications installées à partir de l'App Store comme Xcode et Pages et des applications tierces. Cela signifie que vous ne pouvez pas disposer d'un seul outil pour mettre à jour tous les logiciels sans ouvrir l'application App Store et saisir un mot de passe sur l'écran de l'interface utilisateur.

Ce que vous pouvez faire, c'est télécharger les applications une fois et les copier ensuite sur plusieurs Macs, à condition que l'identifiant Apple utilisé pour télécharger la première copie de l'application soit également utilisé sur tous les Macs qui exécuteront l'application.

Je connais plusieurs institutions qui achètent une copie de chaque application pour un laboratoire de 20 ordinateurs afin d'obtenir une licence pour chaque siège, mais qui déploient ensuite un seul fichier sur tous les Macs de sorte qu'une fois le téléchargement de la mise à jour effectué, un outil tel que Bureau à distance Apple o Caspar ou un outil fait maison comme scp o rsync est utilisé pour déplacer la version mise à jour de l'application vers tous les Macs du laboratoire.

Si vous optez pour un identifiant Apple individuel pour chaque machine, vous ne pourrez pas script l'installation des mises à jour de l'App puisque chacune demandera le mot de passe pour chaque compte, à moins que vous ne soyez à l'aise avec la connaissance de tous les mots de passe et l'exécution de scripts d'interface utilisateur où AppleScript peut entrer le nom d'utilisateur et le mot de passe corrects par programme et ensuite cliquer sur le bouton pour commencer le processus de téléchargement des mises à jour de chaque machine. La manière dont les applications de l'App Store sont signées rend difficile l'insertion d'une mise à jour sans invalider le paquet ou sans avoir recours à l'ingénierie inverse ou au jailbreak de l'ensemble du processus de l'App Store et sans contourner le flux normal qui consiste à laisser l'installateur de l'application faire son travail.

9voto

argon Points 361

Cela est possible en utilisant le logiciel libre mas l'utilitaire de ligne de commande :

mas-cli

Une interface de ligne de commande simple pour le Mac App Store. Conçue pour la création de scripts et l'automatisation.

Divulgation : Je suis le créateur de mas

1 votes

Un grand merci pour cet outil et sa publication ici. Cela a été long à venir et j'espère qu'Apple gardera l'API/SDK stable pour permettre à l'outil de continuer à fonctionner au fil du temps.

3voto

TrinitronX Points 1132

Vous pouvez consulter sprout-wrap y soliste . Vous pouvez installer des paquets OSX à partir d'une uri en utilisant la fonction dmg_package fournisseur. Consultez quelques-unes des recettes en germe pour quelques exemples.

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

Pour Homebrew les applications, le brew Le fournisseur a un upgrade action.

Pour autant que je sache, il n'existe pas de fournisseur permettant de mettre à jour automatiquement les applications de l'App Store. Cependant, il est possible d'utiliser la fonction intégrée de mise à jour automatique de certaines applications au sein d'une application de l'App Store. execute o bash du fournisseur. Vous pouvez également utiliser AppleScript dans une recette de chef pour automatiser l'application App Store. Pour des exemples d'utilisation d'AppleScript en ligne, jetez un coup d'œil à l'application sprout-osx-settings::function_keys recette. (Quelques autres exemples : sprout-osx-settings::remove_expose_keyboard_shortcuts , sprout-osx-settings::set_finder_show_user_home_in_sidebar )

1voto

Alan Storm Points 506

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

Celui que je connais le mieux est radmind (qui a débuté à UMich pour la gestion de leurs laboratoires). (ancien site) ).

radmind est vraiment orienté vers le déploiement d'un modèle de système d'exploitation standard sur un grand nombre de machines et sa mise à jour. Le flux de travail de base est le suivant :

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

Donc, au sens le plus strict, il ne s'agit pas d'automatiser l'installation, mais vous n'avez qu'à faire la partie interactive une seule fois et ensuite distribuer le système d'exploitation mis à jour à vos clients.

Évidemment, cela fonctionne mieux si vous pouvez installer un ensemble standard de logiciels partout. Si vos clients sont tous spéciaux et uniques, ce n'est peut-être pas une bonne solution.

1 votes

J'essaie d'automatiser ce processus 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.

1 votes

@JosephHolsten La procédure avec radmind serait "Installer l'application sur votre machine modèle et mettre à jour la transcription". (Toujours une installation manuelle, mais une seule installation manuelle au lieu de 1000).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X