简体   繁体   English

npm install express 失败。 ENETUNREACH 错误

[英]npm install express fails. ENETUNREACH Error

I've been trying to install express on raspberry pi for a couple hours now.我一直在尝试在树莓派上安装 express 几个小时了。 Not real sure what the issue is.不太确定是什么问题。

pi@raspberrypi:~ $ npm -v
8.1.0

pi@raspberrypi:~ $ node -v
v17.0.1

pi@raspberrypi:~/Project-Folder $ npm install

up to date, audited 1 package in 803ms

found 0 vulnerabilities

npm install works fine, but when I try to reach the registry it fails. npm install 工作正常,但是当我尝试访问注册表时它失败了。

pi@raspberrypi:~/Project-Folder $ npm install -g express
npm ERR! code ENETUNREACH
npm ERR! syscall connect
npm ERR! errno ENETUNREACH
npm ERR! request to http://registry.npmjs.com/express failed, reason: connect ENETUNREACH 0000:0000::0000:0000:80

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2021-10-26T17_22_03_292Z-debug.log

it doesn't actually have that ip address I just don't want to leak any thing.它实际上没有那个 ip 地址,我只是不想泄露任何东西。

I've done everything below.我已经做了下面的一切。

npm config set registry https://registry.npmjs.org/ - Failed npm config set registry https://registry.npmjs.org/ - 失败

npm config set registry https://registry.npmjs.com/ - Failed npm config set registry https://registry.npmjs.com/ - 失败

npm config set registry http://registry.npmjs.org/ - Failed npm config set registry http://registry.npmjs.org/ - 失败

npm config set registry http://registry.npmjs.com/ - Failed npm config set registry http://registry.npmjs.com/ - 失败

npm cache clean - Failed npm cache clean - 失败

nslookup returns the following nslookup 返回以下内容

pi@raspberrypi:~ $ nslookup registry.npmjs.org
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   registry.npmjs.org
Address: 104.16.24.35
Name:   registry.npmjs.org
Address: 104.16.26.35
Name:   registry.npmjs.org
Address: 104.16.19.35
Name:   registry.npmjs.org
Address: 104.16.25.35
Name:   registry.npmjs.org
Address: 104.16.20.35
Name:   registry.npmjs.org
Address: 104.16.23.35
Name:   registry.npmjs.org
Address: 104.16.18.35
Name:   registry.npmjs.org
Address: 104.16.27.35
Name:   registry.npmjs.org
Address: 104.16.21.35
Name:   registry.npmjs.org
Address: 104.16.16.35
Name:   registry.npmjs.org
Address: 104.16.22.35
Name:   registry.npmjs.org
Address: 104.16.17.35
Name:   registry.npmjs.org
Address: 2606:4700::6810:1923
Name:   registry.npmjs.org
Address: 2606:4700::6810:1823
Name:   registry.npmjs.org
Address: 2606:4700::6810:1123
Name:   registry.npmjs.org
Address: 2606:4700::6810:1623
Name:   registry.npmjs.org
Address: 2606:4700::6810:1023
Name:   registry.npmjs.org
Address: 2606:4700::6810:1723
Name:   registry.npmjs.org
Address: 2606:4700::6810:1423
Name:   registry.npmjs.org
Address: 2606:4700::6810:1223
Name:   registry.npmjs.org
Address: 2606:4700::6810:1b23
Name:   registry.npmjs.org
Address: 2606:4700::6810:1523
Name:   registry.npmjs.org
Address: 2606:4700::6810:1323
Name:   registry.npmjs.org
Address: 2606:4700::6810:1a23

I have looked around for quite a bit and it seems like everyone fixes the issue by changing there registry.我环顾四周,似乎每个人都通过更改注册表来解决问题。 That doesn't work for me.那对我不起作用。

This is not a network issue.这不是网络问题。 Below is from MacBook Pro same network.以下来自 MacBook Pro 同一网络。

username Project-Folder % npm install -g express

added 50 packages, and audited 51 packages in 2s

found 0 vulnerabilities

Thank you for any help you can offer.感谢您提供的任何帮助。

The issue ended up being that my local network didn't support IPv6, so I just needed to disable it on my raspberry pi and the issue was fixed.问题最终是我的本地网络不支持 IPv6,所以我只需要在我的树莓派上禁用它,问题就解决了。

To check if IPv6 is enabled.检查是否启用了 IPv6。

use ifconfig使用ifconfig

if it contains inet6 then IPv6 is enabled如果它包含inet6则启用 IPv6

to disable禁用

sudo nano /etc/sysctl.conf

Add this to the end:将此添加到最后:

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
net.ipv6.conf.eth0.disable_ipv6 = 1

sudo nano /etc/rc.local

Add this to the end (but before “exit 0”):将此添加到最后(但在“exit 0”之前):

service procps reload

Reboot the Pi重启树莓派

sudo reboot

use ifconfig and look for inet6 if it doesn't appear then IPv6 is disabled使用ifconfig并查找inet6如果它没有出现则 IPv6 被禁用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM