【问题标题】:bcrypt is breaking my meteor application, how do I fix it?bcrypt 正在破坏我的流星应用程序,我该如何解决?
【发布时间】:2015-06-03 03:10:09
【问题描述】:

我不确定这应该是 stackoverflow 还是 serverfault 问题。

我安装了 Meteor 的帐户密码模块,它在本地工作,但在部署到服务器时破坏了我的应用程序。这是独家新闻:

我在 OSX 上本地运行最新的 Meteor 1.0.5(操作系统刚刚完全更新) 使用 --architecture os.linux.x86_64 构建 部署到 Ubuntu 14.04.2 LTS x86_64(刚刚更新) 运行 nodejs v0.12.1(全新构建) 使用 nginx v1.4.0 服务应用程序

仍然得到:

/home/secrethistory/bundle/programs/server/node_modules/fibers/future.js:245
                                            throw(ex);
                                                  ^
Error: Module did not self-register.
    at Error (native)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at bindings (/home/secrethistory/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
    at Object.<anonymous> (/home/secrethistory/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:3:35)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)

有什么建议或下一步要看的地方吗?

【问题讨论】:

  • 我猜它的新 Nodejs v0.12 正在破坏这些东西。尝试降级节点,然后尝试
  • 我试过了。它仍然没有工作。我回到了 5 一路回到 0.10.1。使用nvm install 0.10.1

标签: node.js ubuntu nginx meteor bcrypt


【解决方案1】:

从源代码重建 bycrypt 解决了我的问题

npm rebuild bcrypt --build-from-source

【讨论】:

    【解决方案2】:

    从 Meteor 1.0.5 开始(这也适用于即将发布的 1.1),我们尚未对 Node 0.12 进行完整的测试、验证和 QA 流程。我建议在此之前坚持使用 Node 0.10。虽然它很可能大部分都可以工作,但可能需要进行一些核心更改,而且正如您所见,针对 0.10 ABI 构建的二进制包不适用于 0.12。

    【讨论】:

    • 没错,但是当我们更新到新版本的流星时,我们中的一些人遇到了需要更新 node.js 的令人不快的惊喜。然后当我们更新时,我们遇到了这个问题。并且使用 nvm 回拨到节点 10.x 仍然没有修复它(因为显然二进制文件已被更改)。因此需要一种解决方法。
    【解决方案3】:

    bcrypt 模块依赖于平台(作为光纤),因此您需要在服务器中解压捆绑包后删除该包:

    rm -R path/to/bcrypt
    

    然后重新安装:

    npm install bcrypt
    

    【讨论】:

    • 是的,确实如此。做到了。谢谢你。在我的安装脚本中,当我能够添加另外两行之后:sudo rm -R ./npm/npm-bcrypt/node_modules/bcrypt; sudo npm install bcrypt
    • 我也遇到了 simplesmtp 的类似错误。相同的解决方案here.
    • 如果在重新安装 bcrypt 后仍然无法正常工作,请通过运行 node-gyp -v 验证您的 node-gyp 是正确的版本,如果它已过期,请运行 npm update node-gyp -g,然后重新-安装 bcrypt。
    • 这在 Meteor 1.2 上帮助了我,现在我正在尝试部署 Meteor 1.3 应用程序并且目录结构已经改变
    • 经过一段时间的搜索后,这个解决方案确实对我有用。问题是 npm install bcrypt 不知何故让它处于以前的状态。只有删除目录才有效。
    猜你喜欢
    • 2019-11-02
    • 1970-01-01
    • 2023-04-04
    • 2014-03-09
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多