Mac App Storeのインストールとアップグレードを自動化できますか?


28

Mac App Storeからアプリをインストールまたはアップグレードするスクリプトを作成するにはどうすればよいですか?私はコマンドラインツールを好むが、AppleScriptまたは他のAPIで十分だろう。

関連するパズルのピース:

  • installer:特に、-storeパッケージ開発者向けのApp Storeインストールをシミュレートするために使用されるフラグに注意してください。
  • systemupdate:Appleアプリの更新を処理でき、-iインストールにフラグを立て、-a利用可能なすべての更新をインストールするように指示します

1つのApple IDでアプリを購入したか、各マシンの個別のApple IDを追跡していますか。
bmike

@bmike:私は共有のApple IDまたは各マシンに対して一意使用して快適になるだろう
ジョセフ・Holsten

Mountain Lionがソフトウェアアップデートサービスを廃止し、すべてがMac App Storeを通じて行われるというMacWorldが正しいと仮定すると、これを管理することはワークグループおよび企業にとっての課題となります。Apple Configuratorが拡張してアカウントの管理を支援し、リモートデスクトップが再起動により更新プログラムが適用されるまで、ユーザーを邪魔することなく更新プログラムを開始できるのではないかと思います。
bmike

回答:


13

ほとんどの人は、自動更新をオンにして、Appleにすべての更新を管理させることができます。それができない、またはできない理由がある場合、App Storeのインストールと更新を自動化するコマンドラインツールが存在します。

コマンドラインからMac App Storeを複製する注目すべきオープンソースツールの1つはmasです。

インストールする:

brew install mas 

起動したら、利用可能なすべてのアプリを更新できます:

mas upgrade

Apple IDでサードパーティのソフトウェアを信頼したくない場合は、UIを自動化し、キーチェーンを使用してアカウント名とパスワードを保存することもできます。

App Store以外のセキュリティパッチおよびアップデートに対するAppleのソリューションはsoftwareupdate、コマンドラインからツールを実行し、Appleがユーザーの介入やApp Store UIを介さずにインストールする予定のすべてのソフトウェアを更新することです。

現在LionとMountain Lionで-これは、MacがローカルOS Xサーバーにヒットし、システムアップデートとApp Storeの外部にインストールされたソフトウェアのダウンロードをキャッシュしていることを意味します。ローカルのソフトウェア更新サーバーがない場合は、もちろんAppleから直接ファイルをダウンロードします。

Mountain Lion 10.8.2以前の場合、すべてがApp Storeを通じて提供されるため、OS X更新などのAppleソフトウェアは、このツールを使用して更新およびApp Store以外の更新のみに対して完全にスクリプト可能です。

スクリプト化できない(まだ、またはこれまでにない)ものは、XcodeやPages、サードパーティアプリケーションなど、App Storeからインストールされるアプリです。つまり、App Storeアプリを開いてユーザーインターフェイス画面でパスワードを入力しなければ、1つのツールですべてのソフトウェアを更新することはできません。

できることは、アプリを一度ダウンロードしてから、アプリの最初のコピーのダウンロードに使用したApple IDがアプリを実行するすべてのMacでも使用されている限り、アプリを複数のMacにコピーすることです。

20台のコンピューターのラボで各アプリのコピーを1つ購入して各シートのライセンスを取得するいくつかの機関を知っていますが、1つのファイルをすべてのMacに展開して、1回の更新ダウンロードが完了すると、Apple Remote Desktopのようなツールまたはキャスパーや自宅でのようなツールを作っscpたりrsync、ラボ内のすべてのMacにアプリの更新バージョンを移動するために使用されます。

各マシンの個別のApple IDのルートに行くと、すべてのパスワードを知っており、AppleScriptが可能なUIスクリプトを実行することに慣れていない限り、それぞれが各アカウントのパスワードを要求するため、アプリアップデートのインストールをスクリプト化できませんプログラムで正しいユーザー名とパスワードを入力し、ボタンをクリックして各マシンの更新のダウンロードプロセスを開始します。アプリストアアプリはコード署名されているため、パッケージを無効にしたり、何らかの方法でアプリストアプロセス全体をリバースエンジニアリング/ジェイルブレイクしたり、アプリインストーラーに作業を行わせたりする通常のフローを回避したりすることなく、更新をスライドすることは困難です


6

これは、オープンソースのmasコマンドラインユーティリティを使用して可能です:

マスクリ

Mac App Store用のシンプルなコマンドラインインターフェイス。スクリプトと自動化のために設計されています。

開示:私はの作成者です mas


そのツールとここに投稿してくれてありがとう。長い時間が経ちましたが、AppleがAPI / SDKを安定させて、ツールが時間の経過とともに機能し続けることを願っています。
bmike

3

スプラウトラップソリストをチェックすることをお勧めします。dmg_packageプロバイダーを使用して、uriからOSXパッケージをインストールできます。いくつかの例については、sproutレシピをご覧ください。

セキュリティ更新を自動更新するには、pivotal_workstation :: osx_updatesレシピを使用します。(これが使用することに注意してくださいsoftwareupdate

以下のために自作アプリ、brewプロバイダが持つupgradeアクションを。

私の知る限り、App Storeアプリを自動更新するプロバイダーはありません。ただし、executeまたはbashブロック内の一部のアプリの組み込みの自動更新機能を使用できる場合があります。また、シェフレシピ内でAppleScriptを使用してApp Storeアプリを自動化することもできます。インラインAppleScriptの使用例については、sprout-osx-settings :: function_keysレシピをご覧ください。(他の例:sprout-osx-settings :: remove_expose_keyboard_shortcutssprout-osx-settings :: set_finder_show_user_home_in_sidebar


1

AppleScript型のソリューションについてはわかりませんが、多数のOS Xシステムを管理するためのツールがあります。

私が最もよく知っているのはradmind(ラボを管理するためにUMichで始まった(旧サイト))です。

radmindは、標準OSテンプレートを多数のマシンに展開して最新の状態に保つことを目的としているため、小規模なサイトでは少し手間がかかる場合があります。基本的なワークフローは次のとおりです。

  • クリーンな「ビルドマシン」を作成し、radmindとすべての標準ソフトウェアをインストールします。
  • そのビルドマシンのradmindトランスクリプトを作成します。
  • クライアントマシンにradmindをインストールし、トランスクリプトを取得/適用してインストールします。
  • 更新については、ビルドサーバーを更新し、更新/パッチのトランスクリプトを作成してから、クライアントに適用します。

…したがって、厳密な意味ではインストールの自動化は行われませんが、インタラクティブビットを1回実行してから、更新されたOSをクライアントに配布するだけで済みます。

明らかに、これはどこにでも標準のソフトウェアセットをインストールできる場合に最もよく機能します。クライアントがすべて特別でユニークな場合、これは素晴らしいソリューションではないかもしれません。


1
私は、radmindのようなシステム自動化ツールであるchef内でこのプロセスを自動化しようとしています。問題は、これらのツールがMac App Storeからアプリをインストールする方法がないことです。
ジョセフホルステン

1
@JosephHolstenの手順radmindは、「テンプレートマシンにアプリケーションをインストールし、トランスクリプトを更新する」です。(まだ手動インストールですが、1000ではなく1回の手動インストールです。)
voretaq7
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.