gpt4 book ai didi

node.js - 多个 NPM 和 NodeJS 版本导致安装 PM2 Profiler 时出现 SSL/证书问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:47 24 4
gpt4 key购买 nike

我自己解决了这个问题,但没有从网络上的其他答案中找到太多帮助,所以我想我会将我的答案发布在这里,以供其他可能遇到相同问题的人使用。

尝试安装 PM2 分析器来找出导致 NodeJS 应用程序内存泄漏的原因,但在安装过程中出现以下错误:

$ pm2 install profiler
[PM2][Module] Installing module profiler
[PM2][Module] Calling [NPM] to install v8-profiler-node8 ...
npm ERR! Error: CERT_UNTRUSTED
npm ERR! at SecurePair.<anonymous> (tls.js:1430:32)
npm ERR! at SecurePair.emit (events.js:92:17)
npm ERR! at SecurePair.maybeInitFinished (tls.js:1029:10)
npm ERR! at CleartextStream.read [as _read] (tls.js:521:13)
npm ERR! at CleartextStream.Readable.read (_stream_readable.js:341:10)
npm ERR! at EncryptedStream.write [as _write] (tls.js:418:25)
npm ERR! at doWrite (_stream_writable.js:226:10)
npm ERR! at writeOrBuffer (_stream_writable.js:216:5)
npm ERR! at EncryptedStream.Writable.write (_stream_writable.js:183:11)
npm ERR! at write (_stream_readable.js:602:24)
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>

npm ERR! System Linux 2.6.32-696.20.1.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install" "v8-profiler-node8" "--loglevel=error"
npm ERR! cwd /usr/lib/node_modules/pm2
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /usr/lib/node_modules/pm2/npm-debug.log
npm ERR! not ok code 0
[PM2][Module][ERROR] Profiling installation has FAILED (checkout previous logs)
[PM2][ERROR] Module install failed

互联网上的很多帖子建议更改 NPM 设置以忽略证书或忽略 https,但这没有帮助:

https://stackoverflow.com/a/45884819/884842 https://github.com/nodejs/node/issues/3742#issuecomment-155545828

这是在运行 CentOS 6.10 的服务器上

最佳答案

安装中的错误与 SSL 证书有关,但这有点误导。虽然具体错误是由于 SSL 证书不受信任造成的,但实际上是因为 PM2 安装过程使用的 NodeJS 和 NPM 版本较旧,使用了过时的证书。

在错误中,您可以看出 NodeJS 和 NPM 版本非常旧:

npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6

但是,当我在命令行上检查 NodeJS 和 NPM 版本时,它们是更新的:

$ node -v
v7.6.0
$ npm -v
4.1.2

在安装 NPM 软件包之前,我也遇到过类似的问题,更新 NodeJS/NPM 已经解决了该问题,但在这种情况下,据我所知,与 PM2 安装程序尝试使用的版本相比,我确实拥有更新版本的 NodeJS 和 NPM。

这里的关键是查看错误日志并发现这一点:

npm ERR! command "node" "/usr/bin/npm" "install" "v8-profiler-node8" "--loglevel=error"

具体来说,/usr/bin/npm

PM2 使用 /usr/bin 文件夹中的 NPM(我假设是 NodeJS),但是当我使用 which 命令时...

$ which node
/usr/local/bin/node
$ which npm
/usr/local/bin/npm

...我们可以看到 PM2 正在寻找的地方没有安装较新的版本(7.6.0 和 4.1.2)。

当我设置此服务器时,我可能手动安装了 NodeJS 和 NPM,早在 NodeJS 发布之前。

从那时起我就开始使用 NVM [ https://github.com/creationix/nvm]安装更新版本。

现在我不知道我的修复是否是解决这个问题的最佳方法,但它对我有用。我删除了 /usr/bin 中的 NodeJS 和 NPM 安装,并添加了指向较新 /usr/local/bin 版本的符号链接(symbolic link)。

# check we're in the /usr/bin folder
$ pwd
/usr/bin

#######################
# SORTING OUT NPM FIRST
#######################

# npm version in the bash environment
$ npm -v
4.1.2

# npm version for the install at /usr/bin/npm
$ ./npm -v
1.3.6

# get rid of the version here in /usr/bin and add link back to the /usr/local/bin version
$ sudo rm npm
$ sudo ln -s /usr/local/bin/npm npm

# npm version in the bash environment
$ npm -v
4.1.2

# npm version for the install at /usr/bin/npm - now linking to the newer one
$ ./npm -v
4.1.2

##################
# SORTING OUT NODE
##################

# node version in the bash environment
$ node -v
v7.6.0

# node version for the install at /usr/bin/node
$ ./node -v
v0.10.48

# get rid of the version here in /usr/bin and add link back to the /usr/local/bin version
$ sudo rm node
$ sudo ln -s /usr/local/bin/node node

$ node -v
v7.6.0

$ ./node -v
v7.6.0

我实际上先做了 Node,但没有帮助(这是一个稍微不同的 UNABLE_TO_GET_ISSUER_CERT_LOCALLY 证书错误,而不是 CERT_UNTRUSTED,然后我整理了 NPM。

您也许可以通过整理 NPM 安装来完成此操作,但我做了 Node,然后 NPM 和 PM2 分析器现在已成功安装,所以这就是我给出的答案。

关于node.js - 多个 NPM 和 NodeJS 版本导致安装 PM2 Profiler 时出现 SSL/证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51440823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com