我正在为需要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
之间的依赖关系。
答案 0 :(得分:0)
找不到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>