ubuntu bcrypt导致ELF标头无效

zvokhttg  于 2022-11-22  发布在  其他
关注(0)|答案(4)|浏览(148)

我遵循着这个方案:
bcrypt is breaking my meteor application, how do I fix it?
但我仍然得到这个错误:

/home/kaleobox/bundle/programs/server/node_modules/fibers/future.js:245
                                                    throw(ex);
                                                          ^
    Error: /home/kaleobox/bundle/programs/server/npm/npm-bcrypt/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 (/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
        at Object.<anonymous> (/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:3:35)
        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)

我进入/home/kaleobox/bundle/programs/server/node_modules并执行以下操作:
rm -R /home/kaleobox/bundle/programs/server/node_modules/bcrypt
然后
npm install bcrypt
但上面的错误仍然存在。
/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
告诉我我可能必须删除并在第二个位置重新安装bcrypt?

toe95027

toe950271#

您应该从以下位置重新安装bcrypt
/home/kaleobox/捆绑包/程序/服务器/npm/npm-bcrypt/节点模块
代替
/home/kaleobox/捆绑包/程序/服务器/节点模块

monwx1rj

monwx1rj2#

我已经通过在下面的目录中重新安装bcrypt包解决了这个问题:

  • 访问此目录:

/my_app/programs/server/npm/npm-bcrypt/

  • 然后运行npm install bcrypt
  • 再次启动你的应用程序。应该没问题。:)
pgpifvop

pgpifvop3#

正如@lingxiao-sun的回答所示,您 * 可能 * 会发现将/home/kaleobox/bundle/programs/server/node_modules中的bcrypt复制到/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node-modules中可以解决此问题。
这可能是因为<your project>/bundle/programs/server/node_modules中的bcrypt已在本地构建/安装到主机,而/server/npm/npm-bcrypt/node-modules/中的bcrypt可能来自源/构建计算机,如果这些环境不同,则可能由于每个环境所需的特定二进制文件而导致问题。

nfs0ujit

nfs0ujit4#

问题是您提交了Windows体系结构中的bcrypt可执行文件,但Heroku虚拟环境是Linux。
node_modules添加到您的.gitignore,并使用git rm -r --cached node_modules
该命令将从Git仓库中移除node_modules,并且在下次推送时,对node_modules的更改将被忽略。

相关问题