【发布时间】:2021-06-06 15:15:51
【问题描述】:
假设我有一个 .app 和一个 .dylib 文件,我需要将它们安装在不同的位置,一个在 /Applications,另一个在 /usr/local/lib。是否可以通过命令行使用 pkgbuild 执行此操作?我能够构建具有相同行为的 .pkg,但只能使用 GUI 应用程序。
【问题讨论】:
标签: macos packaging software-distribution pkg-config
假设我有一个 .app 和一个 .dylib 文件,我需要将它们安装在不同的位置,一个在 /Applications,另一个在 /usr/local/lib。是否可以通过命令行使用 pkgbuild 执行此操作?我能够构建具有相同行为的 .pkg,但只能使用 GUI 应用程序。
【问题讨论】:
标签: macos packaging software-distribution pkg-config
另一种选择是在安装后脚本期间执行所有文件改组。我在上周左右是 pkgbuild 的新手,但我成功地使用了安装后脚本来移动文件。生成的 pkg 中的 --install-location 实际上是一个临时存放区。该脚本创建最终目标目录,并将文件从临时保存区域复制到其中。我只是复制到一个目标目录,但多个目录应该不是问题。安装后脚本的最后几行(就在强制退出 (0) 之前)删除了该临时存放区域及其中的所有内容。
我没有找到太多关于 pkgbuild 脚本的文档。 Here's a good one. 它使用 bash,我使用的是 python,但同样的概念也适用:参数如所述,它必须返回 0。
【讨论】:
我找到了一个替代方案,虽然不是最理想的,但它可以为我完成工作。它使用 Packages (http://s.sudre.free.fr/Software/Packages/about.html) 附带的 packagesbuild 命令行。它允许您通过命令行创建一个 .pkg 文件,但您需要创建一个使用 Packages 应用程序创建的 .pkgproj 文件。您可以通过这种方式将各种文件安装在不同的位置。
【讨论】: