首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建使用其他产品.pkg的.pkg安装程序

创建使用其他产品.pkg的.pkg安装程序
EN

Stack Overflow用户
提问于 2015-03-06 20:39:42
回答 1查看 658关注 0票数 2

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

我正在试验将official NodeJS pkg installer作为我的安装程序的组件包嵌入的可能性。

我将官方包下载到packages/node.pkg,并修改了我的distribution.xml,如下所示:

代码语言:javascript
复制
...
        <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构建时

代码语言:javascript
复制
productbuild --distribution distribution.xml \
    --resources resources \
    --package-path packages \
    --version 0.2.3 \
    setup.pkg

我得到以下警告:

代码语言:javascript
复制
productbuild: warning: package packages/node.pkg could not be loaded

我排除了由于某种原因packages/node.pkg不存在的可能性(可能是我将包下载到了另一个位置):

代码语言:javascript
复制
$ file packages/node.pkg
packages/node.pkg: xar archive - version 1

我遗漏了什么?

是因为我试图使用产品包作为我自己产品包的组件包吗?

另一种可能是在我的包脚本中运行installer来安装它,但是我想知道是否有更好的方法来表达pkg之间的依赖关系。

EN

回答 1

Stack Overflow用户

发布于 2015-03-30 14:32:46

它找不到node.js包。您应该使用正确的路径修改以下行:

代码语言:javascript
复制
<pkg-ref id="org.nodejs.pkg">node.pkg</pkg-ref>

如果您已经将node.pkg捆绑在包中作为组件包,则应该使用以下内容:(请注意在包名称之前使用#)

代码语言:javascript
复制
<pkg-ref id="org.nodejs.pkg">#node.pkg</pkg-ref>

如果你把node.pkg放在包之外(假设它单独出现在pkg的同一目录下),那么你可以使用相对路径:

代码语言:javascript
复制
<pkg-ref id="org.nodejs.pkg">node.pkg</pkg-ref>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28898994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档