nvm ls-remote命令导致" N / A"

时间:2014-10-20 23:49:07

标签: node.js nvm

我尝试使用nvm安装Node,但是当我键入任何版本时,它都不可用。当我输入nvm ls-remote时,我只是得到" N / A"。

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

11 个答案:

答案 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软件包,请将以下行添加到.bashrcsource1source2):

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

答案 2 :(得分:6)

似乎' /'在URL的末尾缺少,这就是301永久移动消息的原因。 因此,从

更改nvm.sh中的链接

http://nodejs.org/dist

http://nodejs.org/dist/

让它发挥作用。

答案 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下载。在删除我的别名后,它可以正常工作。

解决方案

明确检查您的curlcurl是否可用。