
У меня возникла проблема с запуском 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