2015-03-16 3 views
0

В директиве установки файла .spec у меня есть некоторые команды, которые применимы только к машине, на которой будет установлен rpm. Главным образом:Отсутствует команда на создание RPM приложения Node.js

%install 
pm2 stop www # problem here 
rm -rf $RPM_BUILD_ROOT 
cp -r * $RPM_BUILD_ROOT/ 
rm -rf /home/ec2-user/APP-NAME 
mkdir -p /home/ec2-user/APP-NAME 
cp -r * /home/ec2-user/APP-NAME/* 
pm2 start /home/ec2-user/APP-NAME/bin/www 

Во время работы rpmbuild я получаю сообщение об ошибке говорящего pm2 не найдено. Поскольку RPM построен на коробке jenkins, конечно, он не найден. У меня есть отдельная коробка, на которой будет установлен RPM, и, конечно же, он установил pm2.

Я понимаю, что в коробке, на которой построена rpm, не обязательно должны быть библиотеки или двоичные файлы, используемые в директиве install. Это верно?

Также может ли кто-нибудь подумать о том, как лучше написать сценарий оболочки установки? Это мое развертывание fire node.js

ответ

1

%install предназначено для установки встроенных файлов во временное место, где RPM будет их связывать.

%post предназначен для запуска команд на целевой машине после установки.

Похоже, вы пытаетесь остановить службу. Вы сделали бы это в %pre.

Смежные вопросы