コマンドラインからApp Storeアプリケーションを強制的に更新したいと思います。
これどうやってするの?
コマンドラインからApp Storeアプリケーションを強制的に更新したいと思います。
これどうやってするの?
回答:
Appleは、コマンドラインヘルパーや、自動化のためにラッチできるスクリプト可能なココアクラスを提供していません。すぐに更新およびインストールできるソフトウェア全体の更新とは異なり、Automatorを使用してマウスでボタンをクリックするプロセスをスクリプト化できます。
ただし、アプリストアはリバースエンジニアリングされ、オープンソースとバイナリ形式がリリースされています。
インストールは迅速で、OS X 10.11の現在のバージョンでは非常に信頼できるようです。
brew install argon/mas/mas
ソースがリリースされると、このツールの他の実装、おそらくpythonでスクリプト化されたものでさえもポップアップすることが期待されます。
誰かがMacにログインしている場合(windowmanagerが実行されている場合)、Automatorと "watch me do"機能を使用して、更新を自動化し、ストアパスワードをかなり安全に保存できます。
これがニーズに合っている場合に開始するための2つのチュートリアルがあります。
http://www.tuaw.com/2009/01/19/mac-automation-creating-watch-me-do-workflows/
http://automator.us/leopard/features/virtual-user.html
作業スクリプトを作成したら、コマンドラインopen
コマンドを使用して開始できます。
App Storeアプリがスクリプトにその機能を公開する場合、コマンドラインからより多くのオプションがあります。これは、簡単に使用するだろうsdef
、sdp
とgen_bridge_metadata
するルビーを使用して全体のスクリプト可能な辞書とスクリプトのことをダンプするコマンドラインから、しかし、現時点で最良のオプションは、使用することですmas
コマンドラインツールを。
softwareupdate
プロセスがあり、Mountain LionのApp Storeに接続することもできますが、これはApp Store以外のアプリ専用です。
App Storeは管理に適していません。かろうじて準パッケージマネージャーであり、pkgsrc、FreeBSDポート、aptitude、RPM、macports、さらにはsoftwareupdateのような実際のパッケージマネージャーほど有用または信頼性は高くありません。私の経験では、それは予測不可能であり、商業開発者が彼らの製品を飾るのはbeです。そのため、有能な管理者として、App Storeで作業する合理的で責任ある方法は実際には1つしかありません。
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\)/
そして、あなたの心からそれを置くだけで、それはもうあなたを悩ませません。;-)
代わりにARDを使用します。ただし、パッケージマネージャーではなく、パッケージ、インストール、更新、およびアップグレードを管理します。必要な処理を行い、時間を節約します。
Apple Remote Desktop 3、10.9の場合:
最初に管理者ガイドを確認して、これが方法であると確信してください。
curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf
open ARD3_AdminGuide.pdf
次にインストールします:
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 /
ただし、10.9を実行していない場合、または以前のバージョンのARDがインストールされていない場合は、おかしいエラーがスローされる可能性があります。
pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/
または同等の効果を得るために(どちらか、またはここで、pkgutilとxarの両方を使用する必要はありません...私はただ徹底しています):
mkdir ARDexpanded
cd ARDexpanded
xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg
そして、ディスクイメージを添付する必要がなくなったので、取り出してください:
hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/
そして今、あなたがあなたが見るなら
cd ARDexpanded/RemoteDesktopAdmin372.pkg/
ls
は
Bom PackageInfo Payload Scripts
gzipで圧縮されたcpioアーカイブであるペイロードファイルに含まれるものが、あなたが求めているものです。そのため、いくつかのパイプコマンドを使用して、アプリバンドルにアクセスできます。
cat Payload | gzip -d - | cpio -id
ls
戻り値:
Applications Bom Library PackageInfo Payload Scripts
そして、ほぼ完了です。
cp -R Applications/Remote\ Desktop.app /Applications/
これで、Apple Remote Desktop Admin 3.7.2がインストールされました。
あとは、ライセンスを購入するだけです。
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
/ Applications / Remote \ Desktop.appを起動してシリアル化します。そして、いくつかの作業を完了します。
10.6 Snow Leopardでは、少し前のバージョンの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 /
そして、あなたにこれをスローバックする場合:
installer: Cannot install on volume / because it is disabled.
installer: This update could not find Remote Desktop on this volume.
次に試してください:
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
ペイロードにドリルダウンします。
cd ARD353/RemoteDesktopAdmin353.pkg/
ls
戻り値:
Bom PackageInfo Payload Scripts
だから実行:
cat Payload | gzip -d - | cpio -id
ls
戻り値:
Applications Bom Library PackageInfo Payload Scripts
これでほぼ完了です。
cp -R Applications/Remote\ Desktop.app /Applications/
ライセンスを購入する:
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
/ Applications / Remote \ Desktop.appを起動してシリアル化します。そして、何かを成し遂げてください。
このsoftwareupdate
ツールを使用できます。
sudo softwareupdate -l
利用可能なすべての更新を一覧表示します。
sudo softwareupdate -ia
利用可能なすべてのアップデートをインストールします。