0

コマンドラインからMacに製品をインストールしようとしています。

$ installer -package /Volumes/setup.pkg/setup.pkg -target /Volumes/MacOS -verbose
installer: Package name is Foo
installer: Upgrading at base path /
installer: Preparing for installation….....
installer: Preparing the disk….....
installer: Preparing Foo….....
installer: Waiting for other installations to complete….....
installer: Configuring the installation….....
installer:  
installer: Writing files….....
#
installer: Writing files….....
#
installer: Writing files….....
#
installer: Moving items into place….....
##
installer: The upgrade failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)

GUIから実行すると、すべて問題ありません。sudo助けにならない。これをデバッグするにはどうすればよいですか?少なくとも、もっと有益なログが必要です。多くの義務があります。

最初の投稿以降の追加情報: GUIから実行すると、アプリはそれを実行するユーザーの$ {HOME} / Libraryにインストールされます(想定どおり)。コマンドラインから実行すると、/ Libraryにインストールしようとします(ファイルの一部をコピーしますが、すべてをコピーするわけではありません)。

4

1 に答える 1

3

GUIでは、ターゲットを明示的に指定していないため、パッケージがターゲットを配置したい場所にすべてが移動します。ただし、コマンドラインでは、パッケージが指定したものをオーバーライドするを明示的に指定-target /Volumes/MacOSしているため、ファイルを内部およびおそらく他の場所に配置しようとして/Libraryいます。これらの場所の一部にはアクセスできません。

どうやら-target CurrentUserHomeDirectory問題を解決します。

さらに詳細を取得するには、パッケージを抽出し(xar -xf setup.pkg空のディレクトリで行うのが最も簡単な方法です)、ファイルDistribution、* / PackageInfo、場合によっては* / Bomを調べて、インストーラーが正確に指定しているものを確認する必要があります。 。しかし、それを機能させたいだけなら、あなたはすでにそれを行う方法を知っています。

于 2012-05-29T17:33:06.130 に答える