nvm ls-remote命令导致“N / A”

我试图用nvm来安装Node,但是当我input任何版本时,它都不可用。 当我inputnvm ls-remote我只是得到“N / A”。

我能够访问互联网,所以我无法确定可能发生的事情。

更新与维护nvm.sh的LJHarb的评论

LJHarb指出,导致这种情况的一个典型问题是“系统中安装的SSL证书颁发机构已经过时”。 检查这个并试图解决这将是一个更好的第一步。

如果您认为nvm.sh端存在问题,LJHarb会要求用户在nvm.sh的问题跟踪器上提交一个错误。

随意在评论部分看到原文。

另外,我想指出的是,下面的解决scheme是作为解决方法,只是暂时使用,如果你真的在一个绑定。 不build议永久修改导出的镜像或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 

也许一些证书已经过期或者其他的configuration不正确(或者有人在做一些令人讨厌的事情),直到被修复,如果你不介意解决安全问题,你可以findnvm.sh文件(应该是~/.nvm/nvm.sh如果你跟着安装信息),你可以在curl后添加一个-17行,所以它看起来像这样:

 -- 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。

这很可能是由于curl无法使用https URL的证书(使用curl $NVM_NODEJS_ORG_MIRRORvalidation)而curl $NVM_NODEJS_ORG_MIRROR 。 而不是使用http url作为解决方法,它是IMO更好地解决curl。

假设您安装了ca-certificates软件包,请将以下行添加到.bashrc ( source1 , source2 )中:

 export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt 

这似乎是“/”从URL的末尾丢失,这就是为什么301永久移动的消息。 所以改变nvm.sh中的链接

http://nodejs.org/dist

http://nodejs.org/dist/

使其工作。

当使用Vagrant 1.7.1在Windows 7的Virtual Box 4.3.30下运行一个Ubuntu 14.04盒子时,我遇到了这个问题。我尝试了上面的build议,没有为我工作。 我在这里发现这个post是与我试图运行时得到的Curl错误有关: curl $NVM_NODEJS_ORG_MIRROR错误是: curl: (7) Couldn't connect to server我能够按照该post上的build议和然后一旦我重新启动我的stream浪箱与vagrant reload我能够运行nvm ls-remote并查看节点和安装的版本列表。 这是我在stream浪盒上做的: cd /etc/

 sudo nano hosts 

改了127.0.0.1 localhost

至:

0.0.0.0 localhost

希望这可以帮助任何人有同样的问题。 谢谢@ Truong Nguyen

我有同样的问题,但其他解决scheme都没有帮助。 curl -v $NVM_NODEJS_ORG_MIRROR/显示TLS 1.2,证书没有问题。 当我尝试which curl ,事实certificate我的PATH中有一个anaconda3 / bin目录,它有自己的curl版本(不知道为什么他们需要这个)。 一旦我固定我的path, nvm ls-remote工作得很好。 希望这有助于拯救别人一些挫折。