2015-03-06 4 views
1

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

I discarde d вероятность того, что packages/node.pkg не может существовать какой-то причине (возможно, я скачал PKG в другое место):

$ file packages/node.pkg 
packages/node.pkg: xar archive - version 1 

Что мне не хватает?

Это потому, что я пытаюсь использовать пакет продукта как компонентный пакет своего собственного пакета продуктов?

Другая возможность - запустить installer в моих сценариях пакета, чтобы установить его, однако мне интересно, есть ли способ выразить зависимости между pkg.

ответ

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 вне вашего пакета (скажем, он присутствует в той же директории alonside вашего упак), то вы можете использовать относительные пути:

<pkg-ref id="org.nodejs.pkg">node.pkg</pkg-ref> 
Смежные вопросы