尝试安装任何模块时,“消息无法从registry中获取”

我不能从npm安装任何节点模块。

npm install socket.io 

上面的命令导致下面的输出,它不能够安装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.<anonymous> (/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.<anonymous> (/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.<anonymous> (http.js:1134:11) npm ERR! at CleartextStream.emit (events.js:67:17) npm ERR! You may report this log at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! or email it to: npm ERR! <npm-@googlegroups.com> 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 

我的NPM版本是:

 [applmgr@dev node_modules]$ npm --version 1.1.0-3 

我的NodeJS版本是:

 [applmgr@dev node_modules]$ node --version v0.6.10 

我有npm v1.1.4 (和node v0.6.12 )这个问题,这是Ubuntu 12.04版本库。

看起来npm版本不再被支持,更新节点(和npm)解决了这个问题。

首先,卸载过时的版本(可选,但我认为这解决了一个问题,我正在与全球模块不被打扰)。

 sudo apt-get purge nodejs npm 

然后启用nodesource的回购和安装:

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

注意 – 之前的build议是使用Chris Lea的回购,现在他已经将其迁移到了nodeource,请参阅:

来自: 这里

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

我不得不执行下面的命令:

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

但是,这将使npm安装软件包通过不安全的HTTP连接。 如果可以的话,你应该坚持下去

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

而是通过HTTPS安装。

我在Ubuntu上。 我用apt-get来安装节点。 Npm不包含在那个包里,所以它必须单独安装。 我认为这将工作,但显然Ubuntu发行版中的npm版本已经过时了。

节点wiki有这个指令:

获取最新版本的Node或在较早的Ubuntu和其他基于apt的发行版上安装可能需要一些额外的步骤。 安装示例:

 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 

之后,npm已经包含在内,并且完美地工作。

您还需要安装add-apt-repository才能正常工作的软件属性。 所以会的

 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 

对我来说,这通常是一个代理问题,我尝试了一切:

 npm config set registry http://registry.npmjs.org/ npm config set strict-ssl false npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080 npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080 set HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080 set HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080 export HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080 export HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080 export http_proxy=http://myusername:mypassword@proxy.us.somecompany:8080 npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 \ --without-ssl --insecure -g install 

有一件事对我来说随机npm安装错误(在不同的时间(但相同的环境),出错的包是不同的是使用这个:

npm cache clean

然后重复这个过程。 然后,这个过程似乎变得更顺利,真正的问题和错误信息将出现,你可以在那里修复它,然后继续。

这是基于在一个Docker实例内的一个相当裸露的Ubuntu安装下运行一大堆包的npm安装的经验。 有时在Ubuntu中缺lessbuild / make工具,npm错误不会显示真正的问题,除非您由于某种原因清理caching。

现在有来自joyent (主要nodejs支持者)的官方说明 。 对于Ubuntu:

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

对于其他的Unix发行版,osx和windows可以查看链接。 注意这将安装节点和npm。

这个问题是由于https协议,这就是为什么另一个解决scheme工作(通过切换到非安全协议)。

对我来说,最好的解决scheme是编译最新版本的节点,其中包括npm

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

在Ubuntu Fork的Elementary OS Luna上唯一能够工作的。 我在x86架构上。 我尝试了所有的答案,但最后决定从源代码安装。

首先,确保没有使用包pipe理器安装它:

 sudo apt-get purge nodejs npm -y 

我去了下载页面查找最新的源代码并下载它, http://nodejs.org/download/ 。 你可以使用curl,wget或者浏览器来获取它:

 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 

制作可能需要一段时间。 完成之后,应该已经安装了node和npm,并且在/ usr / local / bin目录中工作,这应该已经在你的path上了。 你应该确认它的位置:

 which npm node 

我还必须更改权限才能使其正常工作:

 sudo chown -R $USER /usr/local 

如果没有工作检查你的path:

 echo $PATH 

请注意,以这种方式进行安装,它不会由apt-get软件包pipe理器进行pipe理。 干杯!

下面的方法为我工作,荣誉github用户:midnightcodr

确保您删除了已安装的任何nodejs / npm软件包。

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

现在使用下面的命令安装Node js(感谢github上的midnightcodr)

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

请注意,您可以使用命令节点而不是nodejs来调用节点。

一旦安装了节点,安装npm

 sudo apt-get install npm 

最近,我在将node.js(不可避免的是npm)升级到最新版本后遇到了这个问题:

> npm --version < 2.0.0-alpha-5

注:我没有要求一个不稳定的版本,我只是在OSX上brew install npm后得到它。

降级npm解决了我的问题。

安装npm的最简单方法是使用npm install -g npm但在某些情况下可能无法使用,那么可能需要降级node.js。

可能是npmregistry在当时closures,或者连接断开。

无论哪种方式,你应该升级节点和NPM。

我会推荐使用nave来pipe理你的节点环境。

https://npmjs.org/package/nave

它可以让你轻松安装版本,并迅速在它们之间跳转。

我发现并修改了我find的解决scheme
这是我跑的

 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 

我所做的唯一修改是将所有10.25更改为10.28,这是当时最新的linux-arm-pi

从那里回答是最好的。 然而,Node版本已经向前和向后移动了,由于io.js的重组,版本化变得复杂了。 按照他的回答中的步骤,您将最终得到节点版本0.10.25 – 不是最新的版本。

您仍然应该清除任何现有的节点/ npm包

 sudo apt-get purge nodejs npm 

然后去看https://github.com/nodesource/distributions#debinstall上的;nodesource deb安装页面。

所有的Node.js版本都在上面的页面上列出 ,用Linux命令来安装它们。 这些软件包可以在Debian和Ubuntu上运行

PS如果您想在Ubuntu Precise或Debian Wheezy上运行Node v4.4或更高版本,则应该查看有关在较早的发行版上运行的信息 。

PPS如果您的apt-get失败 ,脚本将无法完成(Google引用失败了我的apt-get update )。 您应该看到关于将NodeSource签名密钥添加到您的密钥环的消息以及指示您Run 'apt-get install nodejs' to install Node.js的最终消息。

PPPS npm与节点一起安装。 一旦安装,你可以用sudo npm install npm -g更新到最新的npm