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


18

Ich möchte ein Update von App Store-Anwendungen über die Befehlszeile erzwingen.

Wie kann ich das machen?


2
Es scheint keinen Befehlszeilen-Helfer wie das gesamte Software-Update zu geben, sodass Sie möglicherweise nur ein Skript starten können, 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 gefragt werden.
bmike

Ich bin auf der Suche nach etwas Unbeaufsichtigtem, dennoch, wenn dies die AppleID-ID / das Kennwort erfordert, finde ich es in Ordnung, es in das Skript aufzunehmen.
Sorin

1
Unter apple.stackexchange.com/questions/42353/… finden Sie auch eine Lösung, die eine Drittanbieter-App
aufruft

Antworten:


6

Apple stellt keinen Befehlszeilen-Helfer oder skriptfähige Kakao-Klassen zur Verfügung, die Sie für die Automatisierung verwenden können. Im Gegensatz zum allgemeinen Software-Update, bei dem Updates und Installationen sofort möglich sind, können Sie mit Automator Skripte für das Klicken auf Schaltflächen mit einer Maus erstellen.

Der App Store wurde jedoch rückentwickelt und als Open Source sowie als Binärform veröffentlicht :

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

brew install argon/mas/mas 

Mit der Veröffentlichung der 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 wird ausgeführt), können Sie Automator und die Funktion "Überwachen" verwenden, um Aktualisierungen zu automatisieren und Ihr Geschäftskennwort ziemlich unsicher im Skript zu speichern.

Im Folgenden finden Sie zwei Tutorials, mit denen Sie beginnen können, 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 Skripte verwendet, stehen Ihnen über die Befehlszeile weitere Optionen zur Verfügung. Es wäre einfach zu bedienen sdef, sdpund gen_bridge_metadataauf die gesamten skript Wörterbuch und Skript Dinge mit Ruby - Dump von der Kommandozeile, aber derzeit die beste Option wäre, das verwenden masKommandozeilen - Tool.


1
Wow, das ist echt nervig. Die üblichen Softwareupdates lassen sich mit softwareupdate (8) einfach per Skript ausführen.
Arne

2
Ich wollte nur festhalten - es ist klar, dass Apple sich bewusst entschieden hat, es schwer zu machen / keine Tools oder Hooks oder Hilfestellungen für die Automatisierung von App Store-Installationen und -Updates bereitzustellen. Das Kernsystem hat den softwareupdateProzess noch nicht abgeschlossen und kann sogar in den App Store von Mountain Lion eingebunden werden - dies gilt jedoch nur für Apps, die nicht im App Store erhältlich sind.
bmike

4

Der App Store ist einfach nicht für die Administration geeignet. Kaum ein Quasi-Paketmanager, ist es bei weitem nicht so nützlich oder zuverlässig wie echte Paketmanager wie pkgsrc, FreeBSD-Ports, Aptitude, RPM, Macports oder sogar Softwareupdate. Nach meiner Erfahrung ist es unvorhersehbar und ein Bart für kommerzielle Entwickler, ihre Waren zu hocken. Es gibt also wirklich nur eine vernünftige und verantwortungsvolle Art, 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 vergessen Sie es einfach nicht, es wird Sie nicht länger stören. ;-)


Verwenden Sie stattdessen ARD, obwohl es sich nicht um einen Paketmanager handelt, sondern um die Verwaltung von Paketen, 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:

Lesen Sie zuerst die Administratoranleitung, 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 Sie:

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 /

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

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

oder gleichermaßen (entweder / oder hier muss nicht sowohl pkgutil als auch xar verwendet werden ... 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 Disk-Image nicht mehr, also werfen Sie es aus:

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

Und jetzt, was wirst du sehen, wenn du

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 genau das, was Sie suchen. So können wir mit ein paar Pipe-Befehlen 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 kaufen:

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 dich 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 laufe:

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/

Kauf deine 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.


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

1

Sie können das softwareupdateTool 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, sondern nur für Apple-Pakete.
Brice

Versuchen Sie auch: man softwareupdate
Billy McCloskey
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.