code

노드 앱을 실행할 때 bcrypt 유효하지 않은 elf 헤더

codestyles 2020. 10. 29. 08:09
반응형

노드 앱을 실행할 때 bcrypt 유효하지 않은 elf 헤더


저는 학교를위한 nodejs 프로젝트를 진행하고 있습니다. npm으로 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 우분투 10.04 LTS를 사용하고 있습니다. Google에서 성공하지 못한 솔루션을 찾으려고 노력했습니다. 누군가 나를 도울 수 있습니까?


나는 OSX에서 컴파일 된 bcrypt가 Linux에서 제대로 작동하지 않는다는 것을 발견했습니다 . 즉, 로컬 OSX 워크 스테이션에서 컴파일 된 bcrypt를 체크인하고 Linux 서버에서 노드 앱을 실행하려고하면 위의 오류가 표시됩니다.

해결책 : npm install bcryptLinux에서 확인하고 해결했습니다.

아마도 이것을 처리하는 가장 좋은 방법은 .gitignore ...에서 node_modules를 제외하고 npm을 원격으로 설치하는 것입니다.


나는 또한 bcrypt v.1.0.3에서 같은 문제에 직면했습니다. 최신 버전 (3.0.1)으로 업데이트했으며 이제 정상적으로 작동합니다.

운영

npm install bcrypt@latest --save

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

참고 URL : https://stackoverflow.com/questions/15809611/bcrypt-invalid-elf-header-when-running-node-app

반응형