
Puppet을 사용하여 애플리케이션을 설정할 때 npm install을 실행하는 데 문제가 있습니다.
저는 Puppet을 사용하여 몇 주 안에 라이브로 사용할 node.js 애플리케이션을 설정하고 있습니다. 이 애플리케이션에는 종속성으로 sqlite3이 있습니다. 내가 겪는 문제는 'npm install'을 실행할 때 sqlite3 종속성을 제대로 실행하려면 소스에서 컴파일해야 한다는 것입니다. 그러나 올바른 명령은 다음과 같습니다.
npm install --build-from-source=sqlite3
Puppet에서 exec 명령을 사용하면 제대로 실행되지 않습니다. 아래에 Puppet 코드가 있습니다.
exec { 'npm install --build-from-source=sqlite3' :
cwd => '/var/video_server',
user => 'root',
path => '/usr/local/node/node-default/bin'
}
Puppet을 사용하여 sqlite3을 올바르게 컴파일하려면 어떻게 해야 합니까? 이 애플리케이션을 설정한 모든 서버에서 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']
}
이것이 당신에게 도움이 되기를 바랍니다.
작동하는지 확인하려면 다음에서 루트로 실행해 보세요 /var/video_server
.
PATH=/usr/local/node/node-default/bin:/bin:/usr/bin npm install --build-from-source=sqlite3