【问题标题】:Can you use the PackageMaker command to create an installer from a list of files?您可以使用 PackageMaker 命令从文件列表中创建安装程序吗?
【发布时间】:2010-04-09 23:00:10
【问题描述】:

我想(定期和自动)从许多地方的各种文件和文件夹创建安装程序。但是,我不知道如何为 packagemaker 命令提供我要安装的项目的所有路径。

这是出于内部开发目的,而不是用于客户分发。我希望包含的文件是可配置的;使用 GUI 添加所有路径并不是一个真正的选择,因为它们会经常更改。

我能做的最好的事情就是使用 --watch 标志和 touch 所有我想要包含在包中的东西。这非常混乱,包括碰巧同时访问的其他文件。我想要包含的内容没有一个共同的方案,所以我不能只 --filter 剩下的。

理想情况下,我会给它一个完整的路径文件,然后它会构建包。如果这不是一个选项,我不反对生成 XML 或将它们放在命令行上或任何可行的方法。我可能在安装程序中有大约 30 个我想要的文件,但这个数字可能会增加。

有没有更好的方法来做到这一点?我没有抓住重点吗?

edit:我想我可以将包中我想要的所有文件复制到一个目录中,然后使用--root 标志。这是最好的方法吗?

edit 2:有没有办法用符号链接来做,所以我以前不必复制文件?

【问题讨论】:

  • 命令行PackageMaker在哪里?我只找到 PackageMaker.app
  • 纳米。我找到了答案(/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker --help
  • @zekel - 你能用你使用的命令行选项发布一个答案吗?
  • @petert - 我发布了一个答案,如果没有帮助,请告诉我。
  • 注意:PackageMaker 显然已被弃用:stackoverflow.com/questions/11487596/…

标签: macos installation packagemaker


【解决方案1】:

(我没有将此答案标记为已接受,因为我真的希望能够从不同位置的文件创建安装程序,而不必将它们复制到暂存目录。)

根据 petert 的要求,以下是您从目录中的文件创建安装程序的方法。请注意,这并不是我想要的,因为它会在目录中添加 all 文件。 (而且我只想包含一些特定的文件。)

## 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。)

【讨论】:

  • 谢谢泽克尔。实际上我发现如果你把所有文件都放在 /tmp/mypackage 中,然后在 pmdoc 中使用这个绝对路径,当你在命令行上运行 packagemaker 时,它会按预期工作。
  • 我同意,您必须为必须添加到包中的所有文件创建一个“暂存”文件夹,这有点不整洁,但它工作得很好;并且 Apple 不会在现有 App Store 的情况下进一步开发 PackageMaker 应用程序。灯泡时刻意识到您只需使用“staging”文件夹创建一个包 (pmdoc) doc 文件,然后您可以重新使用此文件来创建包含您暂存的任何文件的新版本。
猜你喜欢
  • 1970-01-01
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
相关资源
最近更新 更多