Я создаю установщик OS X .pkg
для продукта, для которого требуется NodeJS.
Я экспериментирую с возможностью встраивания официального установщика 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
.