“Messaggio non è riuscito a recuperare dal registro” durante il tentativo di installare qualsiasi modulo

Non riesco a installare alcun modulo nodo da npm.

npm install socket.io 

Il comando sopra riportato è risultato sotto l’output, non è in grado di installare socket.io

 npm http GET https://registry.npmjs.org/socket.io npm ERR! Error: failed to fetch from registry: socket.io npm ERR! at /opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:139:12 npm ERR! at cb (/opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:32:9) npm ERR! at Request._callback (/opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:137:18) npm ERR! at Request.callback (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:109:22) npm ERR! at Request. (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:198:58) npm ERR! at Request.emit (events.js:88:20) npm ERR! at ClientRequest. (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:195:10) npm ERR! at ClientRequest.emit (events.js:67:17) npm ERR! at CleartextStream. (http.js:1134:11) npm ERR! at CleartextStream.emit (events.js:67:17) npm ERR! You may report this log at: npm ERR!  npm ERR! or email it to: npm ERR!  npm ERR! npm ERR! System Linux 2.6.18-194.el5 npm ERR! command "node" "/opt/node0610/bin/npm" "install" "socket.io" npm ERR! cwd /opt/node0610/lib/node_modules npm ERR! node -v v0.6.10 npm ERR! npm -v 1.1.0-3 npm ERR! message failed to fetch from registry: socket.io npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /opt/node0610/lib/node_modules/npm-debug.log npm not ok 

La mia versione NPM è:

 [[email protected] node_modules]$ npm --version 1.1.0-3 

La mia versione di NodeJS è:

 [[email protected] node_modules]$ node --version v0.6.10 

Ho avuto questo problema con npm v1.1.4 (e node v0.6.12 ), che sono le versioni del repository di Ubuntu 12.04 .

Sembra che la versione di npm non sia più supportata, l’aggiornamento del nodo (e di npm con esso) ha risolto il problema.

Innanzitutto, disinstallare la versione obsoleta (facoltativo, ma penso che questo risolva un problema con i moduli globali in cui non è stato eseguito il path in).

 sudo apt-get purge nodejs npm 

Quindi abilitare il repository di nodesource e installare:

 curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs 

Nota: il precedente consiglio era di usare il repository di Chris Lea, che ora è migrato a nodesource, vedi:

Da: qui

https://github.com/isaacs/npm/issues/2119

Ho dovuto eseguire il comando qui sotto:

 npm config set registry http://registry.npmjs.org/ 

Tuttavia, ciò renderà npm installare i pacchetti su una connessione HTTP non npm . Se puoi, dovresti stare con

 npm config set registry https://registry.npmjs.org/ 

invece di installare su HTTPS.

Sono su Ubuntu. Ho usato apt-get per installare il nodo. Npm non era incluso in quel pacchetto, quindi doveva essere installato separatamente. Ho pensato che avrebbe funzionato, ma a quanto pare la versione npm nella distribuzione di Ubuntu era obsoleta.

Il nodo wiki ha questa istruzione:

Ottenere una versione recente di Node o l’installazione su Ubuntu precedenti e altre distribuzioni basate su apt potrebbe richiedere alcuni passaggi aggiuntivi. Esempio di installazione:

 sudo apt-get update sudo apt-get install -y python-software-properties python g++ make sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs 

Successivamente, npm era già incluso e funzionava perfettamente.

È inoltre necessario installare le proprietà software-comuni per l’aggiunta di add-apt-repository. così sarà

 sudo apt-get purge nodejs npm sudo apt-get install -y python-software-properties python g++ make software-properties-common sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs 

Per me, di solito è un problema di proxy, e provo tutto:

 npm config set registry http://registry.npmjs.org/ npm config set strict-ssl false npm config set proxy http://myusername:[email protected]:8080 npm config set https-proxy http://myusername:[email protected]:8080 set HTTPS_PROXY=http://myusername:[email protected]:8080 set HTTP_PROXY=http://myusername:[email protected]:8080 export HTTPS_PROXY=http://myusername:[email protected]:8080 export HTTP_PROXY=http://myusername:[email protected]:8080 export http_proxy=http://myusername:[email protected]:8080 npm --proxy http://myusername:[email protected]:8080 \ --without-ssl --insecure -g install 

Una cosa che ha funzionato per me con errori casuali di installazione di npm (dove il pacchetto che causa errori è diverso in tempi diversi (ma nello stesso ambiente) è quello di usare questo:

npm cache clean

E poi ripeti il ​​processo. Quindi il processo sembra essere più fluido e il vero problema e il messaggio di errore emergeranno, dove è ansible correggerlo e quindi procedere.

Questo si basa sull’esperienza di eseguire l’installazione di npm di un sacco di pacchetti sotto un’installazione di Ubuntu piuttosto spoglia in un’istanza Docker. A volte ci sono strumenti di build / make mancanti da Ubuntu e gli errori di npm non mostreranno il vero problema finché non si pulisce la cache per qualche motivo.

Ora ci sono istruzioni ufficiali da joyent (mainjs backer primario). Per Ubuntu:

 sudo apt-get purge nodejs npm curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs 

Per altre distribuzioni unix, osx e windows vedono il collegamento. Nota questo installerà sia il nodo che il npm.

Questo problema è dovuto al protocollo https, motivo per cui l’altra soluzione funziona (passando al protocollo non sicuro).

Per me, la soluzione migliore era compilare l’ultima versione del nodo, che include npm

 apt-get purge nodejs npm git clone https://github.com/nodejs/node ~/local/node cd ~/local/node ./configure make make install 

L’unica cosa che ha funzionato per me su Elementary OS Luna, un fork di Ubuntu. Sono sull’architettura x86. Ho provato tutte le risposte qui, ma alla fine ho deciso di installarlo dal sorgente.

Innanzitutto, assicurati che non sia installato utilizzando il gestore pacchetti:

 sudo apt-get purge nodejs npm -y 

Sono andato alla pagina di download per cercare l’ultima fonte e scaricarlo, http://nodejs.org/download/ . Puoi usare curl, wget o il tuo browser per ottenerlo:

 wget http://nodejs.org/dist/v0.10.34/node-v0.10.34.tar.gz tar -xvf node-v0.10.34.tar.gz cd node-v0.10.34 ./configure make sudo make install 

La marca potrebbe richiedere un po ‘di tempo. Al termine, è necessario che node e npm siano installati e funzionanti nella directory / usr / local / bin, che dovrebbe già trovarsi sul percorso. Dovresti verificare dove vive:

 which npm node 

Ho anche dovuto modificare le autorizzazioni per farlo funzionare:

 sudo chown -R $USER /usr/local 

Se non ha funzionato controlla il tuo percorso:

 echo $PATH 

Nota che installandolo in questo modo, non sarà gestito da apt-get package manager. Saluti!

Il metodo seguente ha funzionato per me, Kudos per github utente: midnightcodr

Assicurati di rimuovere tutti i pacchetti nodejs / npm già installati.

 sudo apt-get purge nodejs sudo apt-get purge npm 

Ora Installa il nodo js usando il comando seguente (Grazie a midnightcodr su github)

 curl -L https://raw.github.com/midnightcodr/rpi_node_install/master/setup.sh | bash -s 0.10.24 

Si noti che è ansible richiamare il nodo con il nodo di comando e non con nodejs.

Una volta installato il nodo, installa npm

 sudo apt-get install npm 

Recentemente ho avuto questo problema dopo l’aggiornamento di node.js (e inevitabilmente npm) alla versione più recente:

> npm --version < 2.0.0-alpha-5

Nota: non ho chiesto una versione instabile, l'ho appena ottenuta dopo brew install npm su OSX.

Il downgrade di npm ha risolto il problema per me.

Il modo più semplice per installare la versione stabile di npm è npm install -g npm ma potrebbe non funzionare in alcune circostanze e il downgrade di node.js potrebbe essere necessario.

Potrebbe essere che il registro di npm non fosse attivo al momento o che la connessione non venisse eliminata.

In entrambi i casi è necessario aggiornare nodo e npm.

Vorrei raccomandare l’utilizzo di Nave per gestire gli ambienti dei nodes.

https://npmjs.org/package/nave

Ti permette di installare facilmente versioni e saltare rapidamente tra di loro.

per raspberry pi ho trovato e modificato una soluzione che ho trovato
ecco quello che ho corso

 sudo su - cd /opt wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-arm-pi.tar.gz tar xvzf node-v0.10.28-linux-arm-pi.tar.gz ln -s node-v0.10.28-linux-arm-pi node chmod a+rw /opt/node/lib/node_modules chmod a+rw /opt/node/bin echo 'PATH=$PATH:/opt/node/bin' > /etc/profile.d/node.sh 

l’unica mod che ho fatto è stata cambiare tutte le 10.25 e le 10.28, che era l’ultimo linux-arm-pi al momento

@ la risposta di questo è la migliore. Tuttavia, le versioni di Node si sono spostate sempre avanti e verso l’alto, e il controllo delle versioni è stato complicato dalla presenza di io.js. Seguendo i passaggi nella sua risposta, si finirà con la versione 0.10.25 nodo – non la versione più recente.

Dovresti comunque eliminare tutti i pacchetti nodo / npm esistenti

 sudo apt-get purge nodejs npm 

e poi vai alla pagina di installazione deb di nodesource su https://github.com/nodesource/distributions#debinstall .

Tutte le versioni di Node.js sono elencate nella pagina sopra con i comandi di Linux per installarle. E questi pacchetti funzioneranno sia su Debian che su Ubuntu .

PS Se vuoi eseguire il Nodo v4.4 o successivo su Ubuntu Precise o Debian Wheezy, dovresti rivedere le informazioni sull’esecuzione su vecchie distribuzioni .

PPS Se apt-get non funziona , lo script non verrà completato (i riferimenti di Google non hanno funzionato correttamente con il mio apt-get update ). Dovresti vedere i messaggi sulla chiave di firma NodeSource che viene aggiunta al tuo portachiavi e un messaggio finale che ti Run 'apt-get install nodejs' to install Node.js di Run 'apt-get install nodejs' to install Node.js

PPPS npm è installato con nodo. Una volta installato, è ansible aggiornare all’ultimo npm con sudo npm install npm -g