пакетное приложение nodejs как пакет rpm

Я пытаюсь упаковать приложение узла как пакет rpm, следуя этому руководству с небольшими изменениями, так как я использую docker вместо vagrant, пакет устанавливается без проблем после этого. Используются следующие команды:

На хост-компьютере:

docker run -it centos /bin/bash
docker cp ~/menlolab/runner #########:/runner

В контейнере Docker:

curl -sL https://rpm.nodesource.com/setup_10.x | bash - 
yum intall -y nodejs
yum install -y rpm-build redhat-rpm-config
npm i -g speculate

ln -s /runner ~/rpmbuild
cd ~/rpmbuild

speculate
rpmbuild -bb ~/rpmbuild/SPECS/runner.spec

yum install -y ~/rpmbuild/RPMS/x86_64/runner-0.1.4-1.x86_64.rpm

Я хочу иметь возможность упаковать приложение на локальном компьютере. машина. Я установил пакет rpm, следуя приведенным выше шагам, я запускаю speculate в корне проекта, связываю его с rpmbuild с помощью ln, но когда я запускаю rpmbuild -bb, я получаю следующую ошибку: даже если nodejs четко установлен.

error: Failed build dependencies:
        nodejs is needed by runner-0.1.4-1.x86_64

Что может вызвать это?

0
задан 25 July 2019 в 19:01

1 ответ

В файле .spec должен быть указан список его зависимостей, однако, поскольку он не устанавливается из репозитория, необходимо включить localinstall. Это приведет к загрузке и установке зависимостей. В этом не должно быть необходимости, если вы загрузите свой .rpm в репозиторий и установите его таким образом.

$ sudo yum localinstall path/to/package.rpm

При создании .rpm я всегда использовал rpm для проверки всех путей (новая установка, переустановка, пропуск-версия, удаление), чтобы убедиться, что все пути в порядке, против использования yum, который предназначен для взаимодействия с репо.

Когда вы спрашиваете о сборке .rpm, обязательно включите ваш файл .spec, чтобы мы лучше поняли вашу ситуацию.

0
ответ дан 25 July 2019 в 19:01

Другие вопросы по тегам:

Похожие вопросы: