今回はデプロイされた dpd バイナリであるいくつかの npm パッケージで、さまざまなアクセス許可やパスの問題が発生しています。ただし、それは、私が時々受け取る、他のおなじみのイライラするnpmパスの問題に関連しているようです。npm パックをインストールするときに -g を常に使用していることを考えると、npm の使用法にはかなりなじみがあるようです。
これまでのところ、それを解決するために、展開されたmongodbをユーザーからグローバルに何度も再インストールしようとしましたが、npmも再インストールしました。dpd を実行すると、一貫したパッケージ エラーが発生します。関連するものがたくさん見つかりましたが、機能しているものはありません。今日dpdを実行するときの私の問題は次のとおりです。壮大な提案はありますか?
Linux から実行した場合、次の $ dpd starting deployd v0.8.4... MongoDB の起動に失敗しました ('mongod' が $PATH にあることを確認するか、dpd --mongod オプションを使用してください。参照: http://docs.deployd. com/docs/basics/cli.html ) さようなら
$ sudo dpd
starting deployd v0.8.4...
Failed to start MongoDB (Make sure 'mongod' are in your $PATH or use dpd --mongod option. Ref: http://docs.deployd.com/docs/basics/cli.html)
bye
$ dpd --mongod ./.dpd/pids
starting deployd v0.8.4...
child_process.js:1162
throw errnoException(err, 'spawn');
^
Error: spawn EACCES
at exports._errnoException (util.js:746:11)
at ChildProcess.spawn (child_process.js:1162:11)
at exports.spawn (child_process.js:995:9)
at Object.exports.restart (/usr/bin/node_modules/bin/lib/node_modules/deployd/lib/util/mongod.js:38:14)
at start (/usr/bin/node_modules/bin/lib/node_modules/deployd/bin/dpd:149:16)
at Object.<anonymous> (/usr/bin/node_modules/bin/lib/node_modules/deployd/bin/dpd:280:31)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
sudo を実行しても同じエラーが発生します。
$ sudo dpd --mongod ./.dpd/pids
starting deployd v0.8.4...
child_process.js:1162
throw errnoException(err, 'spawn');
^
Error: spawn EACCES
at exports._errnoException (util.js:746:11)
at ChildProcess.spawn (child_process.js:1162:11)
at exports.spawn (child_process.js:995:9)
at Object.exports.restart (/usr/bin/node_modules/bin/lib/node_modules/deployd/lib/util/mongod.js:38:14)
at start (/usr/bin/node_modules/bin/lib/node_modules/deployd/bin/dpd:149:16)
at Object.<anonymous> (/usr/bin/node_modules/bin/lib/node_modules/deployd/bin/dpd:280:31)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
Samba共有にマップされたネットワークドライブでWindowsから実行すると、これが得られます
dpd > fs: missing callback Error: EPERM, open 'C:\Program Files (x86)\Deployd\node_modules\deployd\.latestversion'
ここで何が間違っていますか?
このファイルも、このコード行もどこにも見つかりません。child_process.js:1162 throw errnoException(err, 'spawn'); それをgrepすると、コード行の1つの参照が表示されます。それは/ bin / nodeです。vimで開くと、暗号化されているように見えます...もう一度見てみると、その行があるかもしれません。 .. うーん。
わかりました、ノード バイナリ自体でその行を見つけました。
this.spawnfile = options.file;
var err = this._handle.spawn(options);
// Run-time errors should emit an error, not throw an exception. if (err === uv.UV_EAGAIN ||
err === uv.UV_EMFILE ||
err === uv.UV_ENFILE ||
err === uv.UV_ENOENT) {
process.nextTick(function() {
self._handle.onexit(err);
});
// There is no point in continuing when we've hit EMFILE or ENFILE
// because we won't be able to set up the stdio file descriptors.
// It's kind of silly that the de facto spec for ENOENT (the test suite)
// mandates that stdio _is_ set up, even if there is no process on the
// receiving end, but it is what it is.
if (err !== uv.UV_ENOENT) return err; } else if (err) {
// Close all opened fds on error
stdio.forEach(function(stdio) {
if (stdio.type === 'pipe') {
stdio.handle.close();
}
});
this._handle.close();
this._handle = null;
throw errnoException(err, 'spawn'); }
これはある種のクレイジーな許可エラーですか? 私はすべてのファイルに 755 を設定したと思います。また、ユーザーとして実行した場合のディレクトリも.. selinux がインストールされていないため、いくつかの facls がある可能性があります.このディレクトリには疑いがあります..
npm と nodejs を再インストールしましたが、役に立ちませんでした。これは arch Linux ボックス上にあります。
編集:はい、許可の問題を修正して他の問題を解決した後でも、何らかの理由で機能していません。
$ dpd -d --mongod /usr/bin/node_modules/bin/lib/node_modules
starting deployd v0.8.4...
deployd v0.8.5 is available.
child_process.js:1162
throw errnoException(err, 'spawn');
^
Error: spawn EACCES
at exports._errnoException (util.js:746:11)
at ChildProcess.spawn (child_process.js:1162:11)
at exports.spawn (child_process.js:995:9)
at Object.exports.restart (/usr/bin/node_modules/bin/lib/node_modules/deployd/lib/util/mongod.js:38:14)
at start (/usr/bin/node_modules/bin/lib/node_modules/deployd/bin/dpd:149:16)
at Object.<anonymous> (/usr/bin/node_modules/bin/lib/node_modules/deployd/bin/dpd:280:31)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3