2009-03-12 12 views
15

私はインストーラーを作成する必要があり、インストーラーはすべて(アプリケーションのコピーに加えて)スクリプトの一部ではないスクリプト(または実行可能ファイル)を実行する必要があります。アプリ自体どのように私はこれを行うことができますか?私はタブがスクリプトアクションの結果がある、とプレインストールアクションがアクションファイルを開く作用を有するタブでもある要件でご覧ください。これらのどちらかが仕事をしているのですか、私は他の場所を見なければなりませんか?PackageMakerを使用してインストール時にスクリプトを実行

InstallationCheck: このスクリプトは、の最初に起動される

答えて

21

Hereはハウツー

インストールプロセス中に起動することができるよりも、スクリプトの7種類があります良いです(認証ステップの前でも)インストールプロセス。このコンピュータにパッケージをインストールできることを確認するために使用できます。

VolumeCheck: このスクリプトは[Select Destination]ステップで起動します。これは、パッケージをインストールできるボリュームを決定するために使用されます。

preflight: このスクリプトは、「インストール」ボタンをクリックした直後に起動します。

プリインストール/アップグレード前: 1(シングルパッケージのインストールの場合)があるかどうこのスクリプトは、プリフライトスクリプトの後に起動されます。それ以外の場合は、ユーザーが「インストール」ボタンをクリックした直後です。

ご覧のとおり、2種類のスクリプトがあります。パッケージが一度もインストールされていない場合(Installer.appの観点から)、パッケージがすでにインストールされている場合には、プレインストール前のパッケージが起動されます。パッケージが既にインストールされているかどうかを確認するには、Installer.appが/ Library/Receiptsというディレクトリの内容を調べています。その中にPackageName.pkgという名前のファイルがある場合、そのパッケージはすでにインストールされています。それ以外の場合は最初のインストールです。

postinstall/postupgrade: このスクリプトは、パッケージ内のファイルがインストールされた後に起動されます。どちらが起動されているかは、(preinstall/preupgrade)を参照してください。

飛行後スクリプト: このスクリプトは、インストール後/アップグレード後のスクリプトの後に起動されるか、パッケージがインストールされているとき。

+1

私は後インストールスクリプトを作成しましたが、実行する実行可能ファイルをどのように参照するのですか。言い換えれば、実行可能ファイル(実際のアプリケーションの一部ではありません)をパッケージにどのように含めるかどのようなパスのように見えるでしょう(postinstallスクリプトで)。 –

2

このPackageMaker How-Toの記事は古くなっていますが、半角ダウンに関するスクリプトには非常に便利な情報があります。シェルとperlから見たコマンドライン変数と有用な終了ステータス値を示す表を探します。

+0

私はここで情報をコピーすることについて正しくは感じませんでしたので、参考に答えることをお詫び申し上げます。 –

+1

ええと、epatelの回答が既に.. – yairchu

5

私は、PackageMakerで作った自分のパッケージにシェルスクリプトを組み込むことができたばかりです。インストール後に私のアプリケーションをログイン項目に追加する必要があったので、postflight.shというスクリプトを作成して、それをフォルダに入れました。(それはどんな場所でも動作するようです)

そして私のパッケージには、アプリケーションがあります。 Contents:Package:ApplicationsのScriptsタブで、Postflightセクションでpostflight.shを選択します。それでおしまい。

postflight.sh

#!/bin/bash 

で始まり、それがログイン項目にアプリを入れて、いくつかのスクリプトを持っています。私がそれを持っていなかったとき、私はパッケージを作ることができたが、インストールは失敗した。これが参考になることを願っています。

+0

「ただのフォルダ」にリンクしていたのと同じ記事にリンクしました。ありがとう。私のパッケージをコンパイルしないようにしているデータは、恐ろしいインストールスクリプトを置く場所です。 – mcandre

+1

これは誰にも役立ちます: - packagemaker CLIを--scriptsオプションとともに使用する場合、スクリプトファイル名には拡張子.shを付けてはいけません。プリフライト、ポストフライトなどと名前を付けるだけです – pepsi

関連する問題