2

今回はデプロイされた 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
4

1 に答える 1