Wie aktualisiere ich die App Store-Anwendung über die Befehlszeile?

Ich möchte eine Aktualisierung von App Store-Anwendungen über die Befehlszeile erzwingen.

Wie kann ich das machen?

Es scheint keinen Befehlszeilenhelfer wie das allgemeine Software-Update zu geben, sodass Sie möglicherweise darauf beschränkt sind, ein Skript zu starten, das die GUI-Befehle automatisiert. Würden Sie die Frage bearbeiten, um zu klären, ob Sie erwarten, dass die "funktionierende" Lösung nur ein Terminal ist, oder ob Sie nach einem Automator-Skript suchen, das Ihr Kennwort eingibt, wenn Sie dazu aufgefordert werden?
Ich suche nach etwas Unbeaufsichtigtem, aber wenn dies die AppleID-ID / das Passwort erfordert, finde ich es in Ordnung, es in das Skript aufzunehmen.
Siehe auch apple.stackexchange.com/questions/42353/… für eine Lösung, die eine Drittanbieter-App aufruft

Antworten (3)

Apple stellt keinen Befehlszeilenhelfer oder skriptfähige Kakaoklassen bereit, an die Sie sich zur Automatisierung binden können. Im Gegensatz zum gesamten Software-Update, das Updates und Installationen vorkonfiguriert ermöglicht, können Sie den Vorgang des Klickens auf Schaltflächen mit einer Maus mithilfe von Automator skripten.

Der App Store wurde jedoch rückentwickelt und sowohl als Open Source als auch in binärer Form veröffentlicht :

Die Installation ist schnell und scheint auf der aktuellen Version von OS X 10.11 ziemlich zuverlässig zu sein:

brew install argon/mas/mas 

Mit der veröffentlichten Quelle würde ich erwarten, dass einige andere Implementierungen dieses Tools auftauchen, vielleicht sogar eine, die mit Python geschrieben wurde.

Wenn jemand am Mac angemeldet ist (Windowmanager läuft), können Sie Automator und die Funktion "Watch me do" verwenden, um Updates zu automatisieren und Ihr Store-Passwort ziemlich unsicher im Skript zu speichern.

Hier sind zwei Tutorials, die Ihnen den Einstieg erleichtern, wenn dies Ihren Anforderungen entspricht.

http://www.tuaw.com/2009/01/19/mac-automation-creating-watch-me-do-workflows/

http://automator.us/leopard/features/virtual-user.html

Sobald Sie ein funktionierendes Skript haben, können Sie es mit dem Befehlszeilenbefehl openstarten.

Wenn die App Store-App diese Funktion jemals für Skripts verfügbar macht, stehen Ihnen weitere Optionen über die Befehlszeile zur Verfügung. Es wäre einfach zu verwenden sdefund sdpdas gen_bridge_metadatagesamte skriptfähige Wörterbuch und die Skript-Dinge mit Ruby von der Befehlszeile aus zu sichern, aber derzeit wäre die beste Option die Verwendung des masBefehlszeilen-Tools.

Wow, das ist wirklich ärgerlich. Die üblichen Software-Updates lassen sich mit softwareupdate(8) leicht skripten.
Ich wollte nur fürs Protokoll sagen: Es ist klar, dass Apple sich bewusst dafür entschieden hat, es schwer zu machen / kein Tool oder Haken oder Unterstützung für die Automatisierung von App Store-Installationen und -Updates bereitzustellen. Das Kernsystem hat immer noch den softwareupdateProzess und es hängt sich sogar in den App Store von Mountain Lion ein – aber es ist nur für Nicht-App-Store-Apps.

Der App Store ist für die Verwaltung einfach nicht geeignet. Kaum ein Quasi-Paketmanager, ist es nicht annähernd so nützlich oder zuverlässig wie echte Paketmanager wie pkgsrc, FreeBSD-Ports, Aptitude, RPM, Macports oder sogar Softwareupdate. Meiner Erfahrung nach ist es unvorhersehbar und ein Bart für kommerzielle Entwickler, ihre Waren zu hacken. Es gibt also wirklich nur einen vernünftigen und verantwortungsbewussten Weg, als kompetenter Administrator mit dem App Store zu arbeiten:

 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\)/

Und vergiss es einfach, es wird dich nicht mehr stören. ;-)


Verwenden Sie stattdessen ARD, obwohl es kein Paketmanager ist, es verwaltet Pakete, Installationen, Updates und Upgrades, es wird tun, was Sie wollen, Zeit sparen und Sie nicht im Stich lassen:

Für Apple Remote Desktop 3, für 10.9:

Schauen Sie sich zuerst den Admin-Leitfaden an, um sich davon zu überzeugen, dass dies der richtige Weg ist:

curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf

    open ARD3_AdminGuide.pdf

Dann installieren:

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 /

aber das kann einen lustigen Fehler auslösen, wenn nicht 10.9 ausgeführt wird oder wenn keine frühere Version von ARD installiert ist, und wenn dies der Fall ist, versuchen Sie Folgendes:

pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/

oder mit gleichem Effekt (entweder/oder hier, Sie müssen nicht sowohl pkgutil als auch xar verwenden ... Ich bin nur gründlich):

mkdir ARDexpanded

cd ARDexpanded

xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg

Und wir brauchen das angehängte Disk-Image nicht mehr, also werfen Sie es aus:

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

Und jetzt, was Sie sehen werden, wenn Sie

cd ARDexpanded/RemoteDesktopAdmin372.pkg/

ls

ist

    Bom         PackageInfo Payload     Scripts

Was in der Payload-Datei enthalten ist, die ein mit gzip komprimiertes cpio-Archiv ist, ist das, wonach Sie suchen. Mit ein paar Pipe-Befehlen können wir also zum App-Bundle gelangen:

cat Payload | gzip -d - | cpio -id

ls

kehrt zurück:

    Applications Bom          Library      PackageInfo  Payload      Scripts

Und du bist fast fertig.

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

Jetzt haben Sie Apple Remote Desktop Admin 3.7.2 installiert

Sie müssen also nur noch Ihre Lizenz erwerben:

open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat

Starten Sie /Applications/Remote\ Desktop.app und serialisieren Sie. Und etwas Arbeit erledigen.


Für 10.6 Snow Leopard benötigen Sie eine etwas frühere Version von 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 /

und wenn es dir das zurückwirft:

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

dann versuche es:

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

Drilldown zur Payload:

    cd ARD353/RemoteDesktopAdmin353.pkg/

    ls

kehrt zurück:

    Bom         PackageInfo Payload     Scripts

Also lauf:

cat Payload | gzip -d - | cpio -id

ls

kehrt zurück:

Applications Bom          Library      PackageInfo  Payload      Scripts

Und Sie sind fast fertig:

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

Kaufen Sie Ihre Lizenz:

open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat

Starten Sie /Applications/Remote\ Desktop.app und serialisieren Sie. Und etwas erledigen.

Tolle Antwort, ich habe eine Menge neuer Dinge gelernt, die ich im Terminal tun kann. +1

Sie können das softwareupdateWerkzeug verwenden.

sudo softwareupdate -l

Listet alle verfügbaren Updates auf.

sudo softwareupdate -ia

Installiert alle verfügbaren Updates.

Dies funktioniert nicht für Appstore-Anwendungen, nur für Apple-Pakete.
versuche auch: man softwareupdate