У меня проблема с запуском 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 вручную на каждом сервере, на котором я установил это приложение.
Кажется, ваш 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