web-dev-qa-db-ja.com

ノードアプリの実行時に無効なelfヘッダーを暗号化する

私は学校のnodejsプロジェクトに取り組んでいます。私はncryptでbcryptをインストールすることができなかったので、bcrypt-nodejsをインストールし、昨日プロジェクトはうまくいきました。しかし、今日、「ノードアプリ」を実行すると、このエラーが発生します。

/.../node_modules/bcrypt/node_modules/bindings/bindings.js:79
        throw e
              ^
Error: /.../node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at bindings (/.../node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
    at Object.<anonymous> (/.../node_modules/bcrypt/bcrypt.js:1:97)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)

package.jsonファイルは次のようになります。

{
  "name": "Supinfarm",
  "version": "0.0.0",
  "env": {
              "PYTHON": "/usr/bin/python2.6"
        },
  "dependencies": {
    "express": "3.1.0",
    "connect-flash": "*",
    "jade": "*",
    "stylus": "*",
    "passport": "*",
    "passport-local": "*",
    "mongoose": "*",
    "bcrypt": "*"
  }
}

私はLinux ubuntu 10.04 LTSを使用していますが、Googleで解決策を見つけようとしましたが、成功しませんでした...誰か助けてもらえますか?

69
user2244469

OSXでコンパイルされたbcryptはLinuxではまったく動作しないであることがわかりました。つまり、ローカルOSXワークステーションでコンパイルされたbcryptをチェックインし、Linuxサーバーでノードアプリを実行しようとすると、上記のエラーが表示されます。

解決: npm install bcrypt Linuxでは、チェックインして解決しました。

おそらくこれに対処する最善の方法は、node_modulesを.gitignore ...から除外し、npmをリモートでインストールすることです。

139
Cmag

私もbcrypt v.1.0.3で同じ問題に直面していました。最新バージョン(3.0.1)に更新され、正常に動作するようになりました

走る

npm install bcrypt@latest --save
3
rrt

アプリをAWS Elastic Beanstalkにデプロイし、サーバーにbcryptをインストールする場合は、.ebextensions/01_build.config

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_build_app.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      cd /var/app/current/
      rm -rf node_modules/bcrypt
      Sudo /opt/elasticbeanstalk/node-install/node-v10.13.0-linux-x64/bin/npm install bcrypt@latest
0
Carlos Beltran