我尝试使用nvm安装Node,但是当我键入任何版本时,它都不可用。当我输入nvm ls-remote
时,我只是得到" N / A"。
我能够访问互联网,因此我无法确定可能发生的事情。
答案 0 :(得分:78)
更新LJHarb的评论,维护nvm.sh
LJHarb建议造成这种情况的典型问题是“系统中安装的SSL证书颁发机构已过时”。检查这个并尝试解决这个问题将是更好的第一步。
如果您认为 在nvm.sh方面存在问题,LJHarb会要求用户在nvm.sh's issue tracker上提交错误。
随意在评论部分查看原文。
另外,我想指出的是,下面的解决方案只是暂时使用的解决方法,如果你真的处于绑定状态。不建议永久修改导出的镜像或nvm.sh脚本。
修改:找到更容易修复
您可以导出用于获取内容的镜像的非https版本:
export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist
然后nvm工作
预编辑
刚才有同样的问题。
默认情况下,它会尝试使用卷曲,如果它在您的系统上可用。
我假设你也在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文件(应该在{{1如果你按照安装信息),你可以在curl之后的第17行添加~/.nvm/nvm.sh
,所以它看起来像这样:
-k
不要忘记重新启动shell,然后尝试-- nvm.sh --
nvm_download() {
16 if nvm_has "curl"; then
17 curl -k $*
18 elif nvm_has "wget"; then
19 # Emulate curl with wget
...
}
。假设修复工作正常,您现在应该能够使用nvm。
答案 1 :(得分:13)
最有可能的原因是curl无法使用https网址的证书(使用curl $NVM_NODEJS_ORG_MIRROR
验证)。而不是使用http url作为解决方法,IMO更好地修复curl。
假设您安装了ca-certificates
软件包,请将以下行添加到.bashrc
(source1,source2):
export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
答案 2 :(得分:6)
似乎' /'在URL的末尾缺少,这就是301永久移动消息的原因。 因此,从
更改nvm.sh中的链接到
让它发挥作用。
答案 3 :(得分:6)
创建一个名为
的文件~/.curlrc
在其中插入一行
-k
然后再试一次。
答案 4 :(得分:2)
更改自
export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist/
收件人
export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist/
为我工作:)
答案 5 :(得分:1)
对于像我这样在搜索后登陆的其他人:
我今天在Ubuntu上也遇到了同样的问题,但原因是/etc/ssl/certs/ca-certificates.crt
文件完全为空。
解决方案将运行:
sudo update-ca-certificates
答案 6 :(得分:0)
在Windows 7上使用Vagrant 1.7.1在Virtual Box 4.3.30下运行Ubuntu 14.04框时,我遇到了这个问题。我尝试了上面的建议,对我没什么用。我发现此帖子超过here,与我在尝试运行时遇到的Curl错误有关:curl $NVM_NODEJS_ORG_MIRROR
错误是:curl: (7) Couldn't connect to server
我能够按照该帖子的建议进行操作然后,当我使用vagrant reload
重新启动我的Vagrant框时,我能够运行nvm ls-remote
并查看节点和安装版本的列表。这是我在流浪盒上做的:cd /etc/
sudo nano hosts
更改了127.0.0.1 localhost
为:
0.0.0.0 localhost
希望这可以帮助任何有同样问题的人。谢谢@ Truong Nguyen
答案 7 :(得分:0)
我遇到了同样的问题,但其他解决方案都没有帮助。 curl -v $NVM_NODEJS_ORG_MIRROR/
显示了TLS 1.2,并且证书没有问题。当我尝试which curl
时,事实证明我的PATH中有一个anaconda3 / bin目录,它有自己的curl版本(不知道他们为什么需要它)。一旦我修好了路径,nvm ls-remote
工作得很好。希望这有助于拯救别人一些挫败感。
答案 8 :(得分:0)
对我来说,这可以工作
nvm alias default node
将“默认”指向最新安装的Node版本(8.11.1)。
答案 9 :(得分:0)
在我的linux上对我有用:
export NVM_NODEJS_ORG_MIRROR = http://nodejs.org/dist
答案 10 :(得分:0)
我的情况可能很少见,但只想向该线程添加另一个数据点:
由于我的本地设置问题,我不想安装curl
,并且我明确为curl
设置了一个别名,以警告自己以后不要安装它,从而导致{ {1}}认为我可以使用curl并使用nvm
下载。在删除我的别名后,它可以正常工作。
解决方案
明确检查您的curl
或curl
是否可用。