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_MIRROR
validation)而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中的链接
至
使其工作。
当使用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
工作得很好。 希望这有助于拯救别人一些挫折。