3

多くの場所にあるさまざまなファイルやフォルダーから(定期的かつ自動的に)インストーラーを作成したいと思います。しかし、インストールしたいアイテムのすべてのパスをpackagemakerコマンドに提供する方法がわかりません。

これは内部開発を目的としたものであり、顧客への配布を目的としたものではありません。含まれているファイルを構成可能にしたい。パスは頻繁に変更されるため、GUIを使用してすべてのパスを追加することは実際にはオプションではありません。

私ができる最善のことは、--watch旗とtouchパッケージに含まれている必要なものすべてを使用することでした。これは非常に面倒で、同時にアクセスされる他のファイルが含まれます。私が含めたいものに共通のスキームがないので--filter、残りを除外することはできません。

理想的には、パスでいっぱいのファイルを与えるだけで、パッケージがビルドされます。それが選択肢ではない場合、私はXMLを生成したり、コマンドラインに配置したりすることを嫌がりません。インストーラーに必要なファイルはおそらく30個までありますが、その数はおそらく増えるでしょう。

これを行うためのより良い方法はありますか?私はポイントを逃していますか?

編集:パッケージに必要なすべてのファイルをディレクトリにコピーして、--rootフラグを使用できると考えました。それが最善の方法ですか?

編集2:シンボリックリンクでそれを行う方法があるので、以前にファイルをコピーする必要はありませんか?

4

1 に答える 1

1

(ステージングディレクトリにコピーせずに、さまざまな場所にあるファイルからインストーラーを作成できるようにしたいので、この回答を承認済みとしてマークしていません。)

petertの要求に応じて、ディレクトリ内のファイルからインストーラを作成する方法は次のとおりです。ディレクトリ内のすべてのファイルが追加されるため、これは私が望んでいたものではないことに注意してください。(そして、私はいくつかの特定のファイルだけを含めたかったのです。)

## create the fake root directory (which is also the name of the .pkg installer created)
## paths below this will be interpreted as absolute when the installer runs
mkdir -p MyInstaller

## create some fake stuff to install
install_to="MyInstaller/$HOME/installed_dir/"
mkdir -p "$install_to"
echo 'it worked!' > "$install_to/test.txt"

## actually create the installer
/Developer/usr/bin/packagemaker -i com.mycompany.myInstallerName --root MyInstaller

-iオプション付きのバンドル識別子を提供する(またはplistを提供する)必要があることに注意してください。

于 2011-10-21T19:23:45.130 に答える