我想(定期并自动)从许多地方的各种文件和文件夹中创建安装程序。但是,我无法弄清楚如何提供packagemaker命令以及我要安装的项目的所有路径。
这是出于内部开发目的,而不是用于客户分发。我希望包含的文件是可配置的;使用GUI添加所有路径并不是一个真正的选择,因为它们会经常更改。
我能做的最好的事情是使用--watch
标志和touch
我希望包含在包中的所有东西。这非常混乱,包括碰巧同时访问的其他文件。我想要包含的内容没有一个共同的方案,所以我不能只是--filter
其余的。
理想情况下,我只是给它一个充满路径的文件,它会构建包。如果那不是一个选项,我不反对生成XML或将它们放在命令行或任何可行的方法。我可能在安装程序中有大约30个文件,但这个数字可能会增长。
有更好的方法吗?我错过了这一点吗?
编辑:想知道我可以将包中我想要的所有文件复制到目录中,然后使用--root
标志。这是最好的方法吗?
编辑2 :有没有办法用符号链接来完成,所以我不必复制文件?
答案 0 :(得分: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。)