npm install не работает должным образом через puppet

npm install не работает должным образом через puppet

У меня возникла проблема с запуском npm install при использовании Puppet для настройки моего приложения.

Я использую Puppet для настройки приложения node.js, которое мы будем использовать вживую через несколько недель. Это приложение имеет sqlite3 в качестве зависимости. Проблема, с которой я столкнулся, заключается в том, что при запуске 'npm install" зависимость sqlite3 должна быть скомпилирована из исходного кода для правильной работы. Однако правильная команда:

npm install --build-from-source=sqlite3

Не будет работать должным образом с помощью команды exec в Puppet. У меня есть мой код Puppet ниже:

exec { 'npm install --build-from-source=sqlite3' :
    cwd => '/var/video_server',
    user => 'root',
    path => '/usr/local/node/node-default/bin'
}

Как мне заставить sqlite3 правильно скомпилироваться с помощью Puppet? Я не хочу запускать npm install вручную на каждом сервере, на котором я устанавливаю это приложение.

решение1

Кажется, ваш PATH недостаточно настроен.
Когда вы собираете модуль из исходников, npm должен будет запустить несколько команд, которые должны быть в вашем PATH.
Поэтому, пожалуйста, попробуйте это:

exec { 'npm install --build-from-source=sqlite3' :
    cwd => '/var/video_server',
    user => 'root',
    path => ['/usr/local/node/node-default/bin', '/bin', '/usr/bin']
}

Надеюсь, что это помогает вам.

Чтобы убедиться, что все работает, попробуйте запустить от имени пользователя root /var/video_server:

PATH=/usr/local/node/node-default/bin:/bin:/usr/bin npm install --build-from-source=sqlite3

Связанный контент