1

pkgbuildと を使用してインストーラーを作成してproductbuildいます。何か問題が発生した場合に備えて、ユーザーからインストール ログを収集できるようにしたいと考えています。それらのログが、インストールされている他のすべてのものと混ざっていなければいいのですが。

デフォルトでは、すべてのログが に移動するように見えます/var/logs/install.log。アプリのインストーラー ログのこの場所を変更する方法はありますか?

4

2 に答える 2

0

postinstall スクリプトの最後に次の関数を追加することで、これを解決しました。現在のインストールに関連する install.log の最初の行を検出し、その行から install.log の最後までのすべてを別のファイルにコピーします。

1 つの注意点: 複数のインストールが同時に行われている場合、他のインストールからログが混在する可能性があります。

function export_log {
    NOW=`date "+%Y-%m-%d-%H-%M-%S"`
    LOG_NAME="install_log_$NOW.log"

    # Interactive install logs start with a line "<AppName> x.x.x Installation Log". Silent install logs start with a line 
    # "Product archive /path/to/pkg/folder".

    # Must include something like \d in this expression and the pkg filename, that won't match this line itself when it's printed in the log
    STARTING_LINE_OF_LAST_INSTALL=`egrep '(<AppName> \d+\.\d+\.\d+ Installation Log)|(Product archive.*path/to/pkg/folder/\d+.\d+\.\d+/)' /var/log/install.log | tail -n 1`

    # Copy the rest of the log from that line on, up to 10000 lines.
    fgrep --after-context=10000 "$STARTING_LINE_OF_LAST_INSTALL" /var/log/install.log > "$LOGGING_DIR/$LOG_NAME"
}
于 2016-06-22T16:12:41.947 に答える
0

.pkgMAC OS Xにフラット ファイル形式 ( ) でアプリをインストールするには、次の 2 つの方法があります。

GUI

Installer.app(El Capitan では /System/Library/CoreServices/Installer.app にあります) は、ログを変更するオプションがないように見える GUI インストーラー メソッドですが、ログの表示オプションがあります ( Command+L)

コマンドライン

installer-dumplogファイルにリダイレクトできる標準出力にログをダンプするために使用できるコマンドラインです。

 -dumplog
         Detailed log information is always sent to syslog using the LOG_INSTALL facility (and will wind up in /var/log/install.log).  -dumplog additionally writes this log to
         standard error output.

指示

installer -dumplog -pkg InstallMe.pkg -target / > install.log 2>&1

于 2016-05-12T04:05:23.503 に答える