我遇到了一个很大的问题,npm无法在数据中心的虚拟机上安装任何东西,因为我一直在使ECONNRESET失败。
我已尝试将设置注册表从http更改为https,然后再次返回,没有任何更改,我甚至无法升级npm而不会失败。
我现在已经在这一天工作了一天,而且没有在哪里,因此请求。
如果有任何不同,我最终会尝试使用mup安装流星应用程序。
上次尝试的输出是
taralga-infolite% npm install npm@latest -g
npm ERR! network read ECONNRESET
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! System Linux 3.13.0-74-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "npm@latest" "-g"
npm ERR! cwd /home/pnunn
npm ERR! node -v v0.10.36
npm ERR! npm -v 1.4.28
npm ERR! syscall read
npm ERR! code ECONNRESET
npm ERR! errno ECONNRESET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/pnunn/npm-debug.log
npm ERR! not ok code 0
日志文件是
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install', 'npm@latest', '-g' ]
2 info using npm@1.4.28
3 info using node@v0.10.36
4 verbose node symlink /usr/bin/node
5 verbose cache add [ 'npm@latest', null ]
6 verbose cache add name=undefined spec="npm@latest" args=["npm@latest",null]
7 verbose parsed url { protocol: null,
7 verbose parsed url slashes: null,
7 verbose parsed url auth: null,
7 verbose parsed url host: null,
7 verbose parsed url port: null,
7 verbose parsed url hostname: null,
7 verbose parsed url hash: null,
7 verbose parsed url search: null,
7 verbose parsed url query: null,
7 verbose parsed url pathname: 'npm@latest',
7 verbose parsed url path: 'npm@latest',
7 verbose parsed url href: 'npm@latest' }
8 verbose cache add name="npm" spec="latest" args=["npm","latest"]
9 verbose parsed url { protocol: null,
9 verbose parsed url slashes: null,
9 verbose parsed url auth: null,
9 verbose parsed url host: null,
9 verbose parsed url port: null,
9 verbose parsed url hostname: null,
9 verbose parsed url hash: null,
9 verbose parsed url search: null,
9 verbose parsed url query: null,
9 verbose parsed url pathname: 'latest',
9 verbose parsed url path: 'latest',
9 verbose parsed url href: 'latest' }
10 verbose addNamed [ 'npm', 'latest' ]
11 verbose addNamed [ null, null ]
12 silly lockFile 588f5fcc-npm-latest npm@latest
13 verbose lock npm@latest /home/pnunn/.npm/588f5fcc-npm-latest.lock
14 info addNameTag [ 'npm', 'latest' ]
15 verbose request where is /npm
16 verbose request registry http://registry.npmjs.org/
17 verbose request id 08cd751c52e5f075
18 verbose url raw /npm
19 verbose url resolving [ 'http://registry.npmjs.org/', './npm' ]
20 verbose url resolved http://registry.npmjs.org/npm
21 verbose request where is http://registry.npmjs.org/npm
22 info trying registry request attempt 1 at 13:51:28
23 http GET http://registry.npmjs.org/npm
24 info retry will retry, error on last attempt: Error: read ECONNRESET
25 info trying registry request attempt 2 at 13:51:38
26 http GET http://registry.npmjs.org/npm
27 info retry will retry, error on last attempt: Error: read ECONNRESET
28 info trying registry request attempt 3 at 13:52:38
29 http GET http://registry.npmjs.org/npm
30 silly lockFile 588f5fcc-npm-latest npm@latest
31 silly lockFile 588f5fcc-npm-latest npm@latest
32 error network read ECONNRESET
32 error network This is most likely not a problem with npm itself
32 error network and is related to network connectivity.
32 error network In most cases you are behind a proxy or have bad network settings.
32 error network
32 error network If you are behind a proxy, please make sure that the
32 error network 'proxy' config is set properly. See: 'npm help config'
33 error System Linux 3.13.0-74-generic
34 error command "/usr/bin/node" "/usr/bin/npm" "install" "npm@latest" "-g"
35 error cwd /home/pnunn
36 error node -v v0.10.36
37 error npm -v 1.4.28
38 error syscall read
39 error code ECONNRESET
40 error errno ECONNRESET
41 verbose exit [ 1, true ]
如果我尝试npm安装下划线或npm安装服务器(这是mup安装失败的两个当前软件包),我基本上会得到同样的东西。
我已经将tracert(实际上是mtr)运行到registry.npmjs.org并且根本没有丢包。
有关还有什么可以尝试的任何建议吗?
TA
彼得。
答案 0 :(得分:2)
最后想出了一种方法来实现这一目标。
原来答案是两折......首先,将npm更新为最新版本。要在我的系统上执行此操作,我必须这样做
sudo mv /usr/bin/npm /usr/bin/npm.old
sudo /usr/bin/npm.old install npm -g
然后更改注册表以使用镜像并全局执行(我花了很长时间才能解决配置中错过-g标志的问题)
sudo npm config set registry https://skimdb.npmjs.com/registry -g
我还将重试次数增加到10
sudo npm config set fetch-retries 10 -g
我的/ etc / npmrc文件现在是
registry=https://skimdb.npmjs.com/registry
fetch-retries=10
这实际上是在Linux系统上设置这些内容的更简单方法。
mup需要一段时间才能部署网站,但至少它现在可以正常运行。默认的npm注册表肯定存在问题。我使用wget下载了一些.tgz软件包,npm遇到了问题,最多需要10次尝试才能获得服务器没有立即重置的连接。镜子似乎更加稳定。