コマンドラインからApp Storeアプリケーションを更新する方法は?


18

コマンドラインからApp Storeアプリケーションを強制的に更新したいと思います。

これどうやってするの?


2
全体的なソフトウェアアップデートのようなコマンドラインヘルパーは存在しないため、GUIコマンドを自動化するスクリプトの起動に制限される場合があります。「作業」ソリューションが端末のみであると予想される場合、または質問されたときにパスワードを入力するAutomatorスクリプトが探しているものである場合は、質問を編集して明確にしますか。
bmike

AppleID ID /パスワードが必要な場合は、スクリプトに含めることができますが、無人のものを探しています。
ソリン

1
参照してくださいapple.stackexchange.com/questions/42353/...サードパーティのアプリを呼び出して解決するために
bmike

回答:


6

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アプリがスクリプトにその機能を公開する場合、コマンドラインからより多くのオプションがあります。これは、簡単に使用するだろうsdefsdpgen_bridge_metadataするルビーを使用して全体のスクリプト可能な辞書とスクリプトのことをダンプするコマンドラインから、しかし、現時点で最良のオプションは、使用することですmasコマンドラインツールを。


1
うわー、これは本当に迷惑です。通常のソフトウェア更新は、softwareupdate(8)を使用して簡単にスクリプト化できます。
アルネ

2
記録のために述べたかっただけです-Appleが、App Storeのインストールと更新を自動化するためのツールやフックまたは支援を提供しないか、ハードにすることを意識的に決定したことは明らかです。コアシステムにはまだsoftwareupdateプロセスがあり、Mountain LionのApp Storeに接続することもできますが、これはApp Store以外のアプリ専用です。
bmike

4

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を起動してシリアル化します。そして、何かを成し遂げてください。


1
素晴らしい答えです。ターミナルでできることをたくさん学びました。+1
shrx 14

1

このsoftwareupdateツールを使用できます。

sudo softwareupdate -l

利用可能なすべての更新を一覧表示します。

sudo softwareupdate -ia

利用可能なすべてのアップデートをインストールします。


これはAppstoreアプリケーションでは機能せず、アップルパッケージでのみ機能します。
ブライス

試してみてください:man softwareupdate
ビリーマックロスキー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.