質問

インストーラーを作成する必要があるアプリがあり、アプリのコピー以外にインストーラーが行う必要があるのは、アプリ自体の一部ではないスクリプト(または実行可能ファイル)を実行することだけです。私はこれをどのように行うことができますか? [要件]タブにはスクリプトの結果アクションがあり、アクションにはプレインストールアクションもあります。 [strong>]タブには、[ファイルを開く]アクションがあります。これらのどちらかが仕事をしますか、それとも他の場所を探すべきですか?

役に立ちましたか?

解決

こちらは優れたハウツーです

  

インストールプロセス中に起動できる7種類のスクリプトがあります。

     

InstallationCheck:   このスクリプトは、インストールプロセスの開始時に(認証ステップの前でも)起動されます。パッケージをこのコンピューターにインストールできることを確認するために使用できます。

     

ボリュームチェック:   このスクリプトは、「宛先の選択」で起動されます。ステップ。パッケージをインストールできるボリュームを決定するために使用されます。

     

プリフライト:   このスクリプトは、ユーザーが「インストール」をクリックした直後に起動されます。ボタン。

     

プレインストール/プレアップグレード:   このスクリプトは、プリフライトスクリプトがある場合は起動されます(単一パッケージのインストールの場合)。それ以外の場合は、ユーザーが[インストール]をクリックした直後ボタン。

     

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

     

ポストインストール/ポストアップグレード:   このスクリプトは、パッケージ内のファイルがインストールされた後に起動されます。 (preinstall / preupgrade)を参照して、起動されているものを確認してください。      

ポストフライト:   このスクリプトは、postinstall / postupgradeスクリプトの後、またはパッケージがインストールされたときに起動されます。

他のヒント

PackageMakerで作成したパッケージにシェルスクリプトを含めることができました。インストール後にアプリをログイン項目に追加する必要があったので、 postflight.sh というスクリプトを作成してフォルダーに入れました。 (どの場所でも動作するようです)

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

my postflight.sh で始まる

#!/bin/bash

そして、アプリをログイン項目に入れるスクリプトがあります。それを持っていなかった場合、パッケージを作成できましたが、インストールは失敗しました。これがお役に立てば幸いです。

この PackageMakerハウツーの記事は古くなっていますが、スクリプトの途中で非常に役立つ情報がいくつかあります。 shellおよびperlから見たコマンドライン変数と、いくつかの有用な終了ステータス値を示す表を探します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top