2

我正在.pkg为需要 NodeJS 的产品构建 OS X 安装程序。

我正在尝试将官方 NodeJS pkg 安装程序作为我的安装程序的组件包嵌入的可能性。

我下载了官方的 pkgpackages/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's 之间的依赖关系。

4

1 回答 1

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>
于 2015-03-30T06:32:45.833 回答