18 votes

Comment mettre à jour l'application App Store à partir de la ligne de commande ?

Je voudrais forcer une mise à jour des applications App Store à partir de la ligne de commande.

Comment puis-je le faire ?

2 votes

Il ne semble pas y avoir d'aide en ligne de commande comme la mise à jour globale du logiciel, donc vous pouvez être limité à lancer un script qui automatisera les commandes de l'interface graphique. Pourriez-vous modifier la question pour préciser si vous attendez que la solution "fonctionnelle" soit un terminal uniquement ou si un script d'Automator qui saisira votre mot de passe lorsqu'il vous sera demandé est ce que vous recherchez.

0 votes

Je cherche quelque chose de non surveillé, néanmoins si cela nécessite l'identifiant AppleID/mot de passe je trouve ok de l'inclure dans le script.

1 votes

Voir aussi apple.stackexchange.com/questions/42353/ pour une solution qui appelle une application tierce

7voto

Oskar Points 1242

Apple ne fournit pas d'aide en ligne de commande ni de classes de cacao scriptables auxquelles vous pouvez vous raccrocher pour l'automatisation. Contrairement à la mise à jour globale du logiciel, qui permet des mises à jour et des installations d'emblée, vous pouvez scriptle processus de cliquer sur des boutons avec une souris en utilisant Automator.

Cependant, le magasin d'applications a fait l'objet d'une ingénierie inverse et a été publié en open source. ainsi qu'une forme binaire :

L'installation est rapide et il semble être assez fiable sur la version actuelle d'OS X 10.11 :

brew install argon/mas/mas 

Avec la publication des sources, je m'attends à 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 (windowmanager est en cours d'exécution), vous pouvez utiliser Automator et la fonction "watch me do" pour automatiser les mises à jour et le stockage du mot de passe de votre magasin dans le script de manière assez peu sécurisée.

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 ligne de commande open pour le lancer.

Si l'application App Store expose un jour cette fonction aux scripts, vous aurez davantage d'options à partir de la ligne de commande. Il serait facile d'utiliser sdef , sdp y gen_bridge_metadata à vider tout le dictionnaire scriptable et des choses en utilisant ruby à partir de la ligne de commande, mais pour l'instant, la meilleure option serait d'utiliser la fonction mas outil de ligne de commande.

1 votes

Wow, c'est vraiment ennuyeux. Les mises à jour habituelles du logiciel sont facilement scriptables en utilisant softwareupdate(8).

2 votes

Je voulais juste déclarer pour le dossier - Il est clair qu'Apple a consciemment décidé de rendre difficile / de ne pas fournir d'outil ou de crochet ou d'assistance pour automatiser les installations et les mises à jour de l'App Store. Le système de base a toujours le softwareupdate et il se connecte même à l'App Store sur Mountain Lion, mais uniquement pour les applications qui n'appartiennent pas à l'App Store.

4voto

chillin Points 2767

L'App Store n'est tout simplement pas adapté à l'administration. A peine un quasi gestionnaire de paquets, il est loin d'être aussi utile ou fiable que les vrais gestionnaires de paquets comme pkgsrc, FreeBSD ports, aptitude, RPM, macports ou même softwareupdate. D'après mon expérience, il est imprévisible et permet aux développeurs commerciaux de vendre leurs produits. 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 sortez-la de votre esprit, elle ne vous troublera plus ;-)


Utilisez ARD à la place, bien que ce ne soit pas un gestionnaire de paquets, il gère les paquets, 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 de l'administrateur 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

Puis installez :

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 donner lieu à une drôle d'erreur si la version 10.9 n'est pas utilisée, ou si aucune version précédente de 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 équivalent (soit l'un soit l'autre ici, il n'est pas nécessaire d'utiliser à la fois pkgutil et xar.... Je suis juste 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, donc éjectez-la :

hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/

Et maintenant, ce que vous allez voir si vous

cd ARDexpanded/RemoteDesktopAdmin372.pkg/

ls

est

    Bom         PackageInfo Payload     Scripts

Ce que contient le fichier Payload, qui est une archive cpio compressée avec gzip, est ce que vous recherchez. Donc, avec quelques commandes pipées, nous pouvons accéder au paquet d'applications :

cat Payload | gzip -d - | cpio -id

ls

retours :

    Applications Bom          Library      PackageInfo  Payload      Scripts

Et vous avez presque fini.

cp -R Applications/Remote\ Desktop.app /Applications/

Maintenant vous avez 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 votre travail.


Pour 10.6 Snow Leopard, vous aurez besoin d'une version légèrement antérieure de 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 elle vous renvoie ça :

    installer: Cannot install on volume / because it is disabled.
    installer: This update could not find Remote Desktop on this volume.

alors 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

descendez jusqu'à la charge utile :

    cd ARD353/RemoteDesktopAdmin353.pkg/

    ls

retours :

    Bom         PackageInfo Payload     Scripts

Alors cours :

cat Payload | gzip -d - | cpio -id

ls

retours :

Applications Bom          Library      PackageInfo  Payload      Scripts

Et vous avez presque fini :

cp -R Applications/Remote\ Desktop.app /Applications/

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 quelque chose.

1 votes

Excellente réponse, j'ai appris un tas de nouvelles choses que je peux faire dans le terminal. +1

1voto

Moritz Petersen Points 529

Vous pouvez utiliser le softwareupdate outil.

sudo softwareupdate -l

Liste toutes les mises à jour disponibles.

sudo softwareupdate -ia

Installe toutes les mises à jour disponibles.

0 votes

Cela ne fonctionne pas pour les applications Appstore, seulement pour les paquets apple.

0 votes

Essayez aussi : man softwareupdate

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