
使用 Puppet 設定我的應用程式時,執行 npm install 時遇到問題。
我正在使用 Puppet 來設定一個 Node.js 應用程序,我們將在幾週後實際使用該應用程式。該應用程式有 sqlite3 作為依賴項。我遇到的問題是執行「npm install」時,必須從原始碼編譯 sqlite3 依賴項才能正常運行。
npm install --build-from-source=sqlite3
在 Puppet 中使用 exec 命令將無法正常運作。我的木偶程式碼如下:
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']
}
希望這可以幫助你。
要驗證它是否有效,您可以嘗試以 root 身份運行/var/video_server
:
PATH=/usr/local/node/node-default/bin:/bin:/usr/bin npm install --build-from-source=sqlite3