更新来自维护 nvm.sh 的 LJHarb 的评论
LJHarb 建议导致此问题的典型问题是“您系统中安装的 SSL 证书颁发机构已过期”。检查并尝试解决此问题将是更好的第一步。
如果您认为 存在 nvm.sh 方面的问题,LJHarb 会要求用户在 nvm.sh's issue tracker 上提交错误。
欢迎在 cmets 部分查看原文。
另外,我想指出,以下解决方案旨在作为解决方法,仅在您确实处于绑定状态时临时使用。不建议永久修改导出的镜像或 nvm.sh 脚本本身。
编辑:发现更容易修复
你可以导出它用来抓取东西的非 https 版本的镜像:
export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist
然后 nvm 工作
预编辑
刚才遇到了同样的问题。
看起来默认情况下它会尝试使用 curl 如果它在您的系统上可用。
我假设您也在使用 linux,因此请尝试运行 curl $NVM_NODEJS_ORG_MIRROR 并查看您是否遇到与我相同的错误:
curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
也许某些证书已过期或配置错误(或有人在做一些讨厌的事情),直到它被修复,如果你不介意绕过安全问题,你可以找到 nvm.sh 文件(应该在~/.nvm/nvm.sh如果您按照安装信息进行操作),您可以在 curl 后的第 17 行添加 -k,如下所示:
-- nvm.sh --
nvm_download() {
16 if nvm_has "curl"; then
17 curl -k $*
18 elif nvm_has "wget"; then
19 # Emulate curl with wget
...
}
别忘了重启你的shell,然后试试nvm ls-remote。假设修复成功,您现在应该可以使用 nvm。