Ich möchte eine Aktualisierung von App Store-Anwendungen über die Befehlszeile erzwingen.
Wie kann ich das machen?
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 open
starten.
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 sdef
und sdp
das gen_bridge_metadata
gesamte 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 mas
Befehlszeilen-Tools.
softwareupdate
Prozess 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.
Sie können das softwareupdate
Werkzeug verwenden.
sudo softwareupdate -l
Listet alle verfügbaren Updates auf.
sudo softwareupdate -ia
Installiert alle verfügbaren Updates.
Fahrrad
sorin
Fahrrad