I'm having a huge issue with npm not being able to install anything on a virtual machine in a data centre because I keep getting ECONNRESET fails.
I've tried the set registry from http to https and back again with no change and I can't even upgrade npm without it failing.
I've been at this for a day now and am getting no where, hence the request.
I'm ultimately trying to install a meteor app with mup if that makes any difference.
The output from the last attempt is
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
The log file is
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 ]
I get basically the same thing if I try and npm install underscore or npm install server (which are the two current packages the mup install is failing on).
I've run a tracert (actually mtr) to registry.npmjs.org and am getting no packet loss at all.
Any suggestions on what else to try?
Ta
Peter.
Finally figured out a way to make this work.
Turns out the answer is two fold... firstly, update npm to the latest version. To do this on my system I had to do
sudo mv /usr/bin/npm /usr/bin/npm.old
sudo /usr/bin/npm.old install npm -g
Then change the registry to use the mirror and do this globally (it took me ages to work out I missed the -g flag in the configuration)
sudo npm config set registry https://skimdb.npmjs.com/registry -g
I also increased the number of retries to 10
sudo npm config set fetch-retries 10 -g
My /etc/npmrc file is now
registry=https://skimdb.npmjs.com/registry
fetch-retries=10
which is actually the easier way to set these on a linux system.
mup takes a while to deploy the sites, but at least it now works reliably. There is definitely a problem with the default npm registry. I used wget to download a number of the .tgz packages npm was having problems with and it would take up to 10 attempts to get a connection that was not immediately reset by the server. The mirror seems to be much more stable.