
Ich habe ein Problem beim Ausführen von npm install, wenn ich Puppet zum Einrichten meiner Anwendung verwende.
Ich verwende Puppet, um eine node.js-Anwendung einzurichten, die wir in einigen Wochen live verwenden werden. Diese Anwendung hat sqlite3 als Abhängigkeit. Das Problem, auf das ich stoße, ist, dass beim Ausführen von „npm install“ die sqlite3-Abhängigkeit aus dem Quellcode kompiliert werden muss, um ordnungsgemäß ausgeführt zu werden. Der richtige Befehl lautet jedoch:
npm install --build-from-source=sqlite3
Läuft nicht richtig mit dem Exec-Befehl in Puppet. Ich habe meinen Puppet-Code unten:
exec { 'npm install --build-from-source=sqlite3' :
cwd => '/var/video_server',
user => 'root',
path => '/usr/local/node/node-default/bin'
}
Wie kann ich SQLite3 mit Puppet richtig kompilieren? Ich möchte npm install nicht manuell auf jedem Server ausführen müssen, auf dem ich diese Anwendung einrichte.
Antwort1
Es scheint, dass Ihr PATH nicht ausreichend konfiguriert ist.
Wenn Sie ein Modul aus der Quelle erstellen, muss npm mehrere Befehle ausführen, die sich in Ihrem PATH befinden müssen.
Versuchen Sie also Folgendes:
exec { 'npm install --build-from-source=sqlite3' :
cwd => '/var/video_server',
user => 'root',
path => ['/usr/local/node/node-default/bin', '/bin', '/usr/bin']
}
hoffe, das hilft Ihnen weiter.
Um selbst zu überprüfen, ob es funktioniert, können Sie versuchen, es als Root in folgendem Programm auszuführen /var/video_server
:
PATH=/usr/local/node/node-default/bin:/bin:/usr/bin npm install --build-from-source=sqlite3