pkgbuildコマンドによるスクリプト実行方法とパラメーター


Macではpkgbuildとproductbuildを組み合わせてインストーラーを作りますが、pkgbuildで--scriptオプションを使用すると、インストールの実行前と完了後にスクリプトを実行することができます。


これによって、インストーラーを実行中にファイルを削除したり、デスクトップにエイリアスを作成したり、インストールに必要な事前チェックを行うなど、細かな制御ができるようになり大変便利です。




スクリプトの実行方法


まず、preinstallとpostinstallというファイルを作成します。それぞれインストール実行前、インストール完了後に走らせるスクリプトになります。


ファイルの中身はシェルスクリプトで書けば大丈夫です。これらのファイルを以下のように適当なディレクトリの中に入れておきます。


/Applications/devel/script
          |-- preinstall
          |-- postinstall


あとは、pkgbuildを実行する際に--scriptオプションを使ってこのディレクトリ名を指定すれば良いだけです。pkgbuildの詳細な実行方法はMacインストーラーの作成方法のページを参照してください。


ただ、スクリプトを実行させるにあたって必要になるのが、インストールディレクトリのパスやボリューム名などです。インストールするパスが固定されているのであれば不要ですが、ユーザーにインストールする場所を選択させるような場合には、これらの値を取得しなければなりません。




pkgbuildでのパラメーター


pkgbuildには、以下のようにあらかじめ設定されたパラメーターがあります。


$0 - Script path
$1 - Package path
$2 - Target location
$3 - Target volume


これらの値を上記のシェルスクリプトに組み込んでおけば、インストールディレクトリやパッケージが配置された場所を取得することができます。


このパラメーターが使えるようになると、インストール完了後にデスクトップにエイリアスを作成するというようなことができるようになります。エイリアスの作り方はMacでエイリアスをコマンドラインから作成する方法のページをご参照ください。


ちなみにこれらの値はPackageMakerでも使うことができます。PackageMakerはXCode4.6からはdeprecatedになって推奨されていませんが、一応動作させることができます。


このエントリーをはてなブックマークに追加



関連記事 

1.Macインストーラーの作成方法
2.Macでエイリアスをコマンドラインから作成する方法



▲ このページの上部へ戻る