当我使用 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']
}
希望这可以帮助你。
为了验证它是否有效,您可以尝试以 root 身份运行/var/video_server
:
PATH=/usr/local/node/node-default/bin:/bin:/usr/bin npm install --build-from-source=sqlite3