我正在为需要 NodeJS 的产品构建 OS X .pkg
安装程序。
我正在尝试嵌入 official NodeJS pkg installer 的可能性作为我的安装程序的组件包。
我将官方 pkg 下载到 packages/node.pkg
并将我的 distribution.xml
修改为如下所示:
...
<pkg-ref id="org.nodejs.pkg">node.pkg</pkg-ref>
<choices-outline>
<line choice="org.nodejs.pkg" />
</choices-outline>
<choice
id="org.nodejs.pkg"
visible="false"
title="nodejs"
description="NodeJS"
start_selected="true">
<pkg-ref id="org.nodejs.pkg" />
</choice>
...
但是,当使用productbuild
构建时:
productbuild --distribution distribution.xml \
--resources resources \
--package-path packages \
--version 0.2.3 \
setup.pkg
我收到以下警告:
productbuild: warning: package packages/node.pkg could not be loaded
我放弃了 packages/node.pkg
由于某种原因而无法存在的可能性(也许我将 pkg 下载到了另一个位置):
$ file packages/node.pkg
packages/node.pkg: xar archive - version 1
我错过了什么?
是否是因为我试图将产品包用作我自己的产品包的组件包?
另一种可能性是在我的包脚本中运行installer
来安装它,但是我想知道是否有更好的方法来表达pkg
之间的依赖关系.
最佳答案
它没有找到node.js包。您应该使用正确的路径修改以下行:
<pkg-ref id="org.nodejs.pkg">node.pkg</pkg-ref>
如果您已将node.pkg作为组件包捆绑在包内,则应使用以下内容:(注意包名称前使用#)
<pkg-ref id="org.nodejs.pkg">#node.pkg</pkg-ref>
如果您将node.pkg保留在包之外(假设它与您的pkg位于同一目录中),那么您可以使用相对路径:
<pkg-ref id="org.nodejs.pkg">node.pkg</pkg-ref>
关于node.js - 创建使用另一个产品 .pkg 的 .pkg 安装程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28898994/