我正在为一个需要NodeJS的产品构建一个OS X .pkg
安装程序。
我正在尝试将官方的NodeJS pkg安装程序作为安装程序的组件包进行嵌入。
我将官方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-ref id="org.nodejs.pkg">node.pkg</pkg-ref>