ChatGPT解决这个技术问题 Extra ChatGPT

尝试安装任何模块时“无法从注册表获取消息”

我无法从 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 版本。将其更新到最新版本并重试:sudo npm update npm -g
约翰尼感谢您的评论,实际上如果我需要更新 npm 我是否也应该更新 nodejs
您也不必更新 nodejs,但如果您由于某种原因未绑定到 6.x 版本,我会推荐它。
HTTP 有效; HTTPS 没有,因为 registry.npmjs.org 没有监听 HTTPS。
我通常下载 &从 official site 编译最新版本的 nodejs。我使用的发行版(通常是 Ubuntu LTS)版本太旧。

J
John Carter

我在使用 npm v1.1.4(和 node v0.6.12)时遇到了这个问题,它们是 Ubuntu 12.04 存储库版本。

看起来该版本的 npm 不再受支持,更新节点(以及使用它的 npm)解决了该问题。

首先,卸载过时的版本(可选,但我认为这解决了我遇到的全局模块未进入路径的问题)。

sudo apt-get purge nodejs npm

然后启用 nodesource 的 repo 并安装:

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

注意 - 之前的建议是使用 Chris Lea 的 repo,他现在已将其迁移到 nodesource,请参阅:

https://chrislea.com/2014/07/09/joining-forces-nodesource/

https://nodesource.com/blog/chris-lea-joins-forces-with-nodesource

来自:here


请注意,nodejs 包包括 npm 和 nodejs-dev,因此从 ppa 安装 nodejs 可以获得 npm 所需的一切。
谢谢!这对我有用!这将是“Ask Ubuntu”的公认答案,但似乎很多非 Ubuntu 用户发现公认的答案很有帮助。
在树莓派上运行它并在运行 nodejs 或 npm 时出现分段错误
在使用这些说明并在 raspberry pi (Raspbian) 上出现分段错误后,我删除了端口并按照这些说明 gist.github.com/justinjenkins/16adc15338bb265f6808 现在它可以工作了!
-1 建议毫无戒心的新手做一些不明智和不安全的事情,例如将 Internet 上未经验证的源代码通过管道传输到 root shell。不负责任几乎没有涵盖它。如果不建议验证校验和,您至少应该对安全性有所警告。
i
isomorphismes

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 安装。


是的,这也为我做了。感谢分享!
使用树莓派,这与我必须使用的命令相同。将 registry.npmjs.org/pi-gpio 更改为 registry.npmjs.org/pi-gpio。不确定 pi 无法访问的 https 是怎么回事
警告:这会通过 /insecure/ 连接拉取资源。您的文件可能会在您获得它们之前被更改。再说一遍:这不安全。
不要使用这种不安全的解决方案,即使它有效。 Node.js 的 apt-get 版本太旧(0.6.12);我从 GitHub 安装了最新的稳定版本,它解决了这个问题。
它不适用于其他一些 nodejs 包。我只是从 official site 下载较新版本的 node.js 并手动编译它。
g
geon

我在 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 已经被包括在内并且运行良好。


K
Katie

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

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 config set strict-ssl false 禁用严格 SSL 为我工作。
R
Rahil Wazir

您还需要安装 software-properties-common 才能使 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

经过以上步骤,我们都需要做的是:sudo npm install -g karma
E
Edward Tan

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

npm cache clean

然后重复这个过程。然后这个过程似乎更顺利,真正的问题和错误消息将出现,您可以在其中修复它然后继续。

这是基于在 Docker 实例中的一个非常裸的 Ubuntu 安装下运行一大堆包的 npm install 的经验。有时 Ubuntu 中缺少构建/制作工具,并且 npm 错误不会显示真正的问题,直到您出于某种原因清理缓存。


是的,我发现我必须结合从那里得到的答案来运行它。
L
Lawrence Kesteloot

这个问题是由于 https 协议造成的,这就是其他解决方案有效的原因(通过切换到非安全协议)。

对我来说,最好的解决方案是编译最新版本的 node,其中包括 npm

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

B
Brian Low

现在有 official instructions from 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,请参阅链接。请注意,这将同时安装 node 和 npm。


r
radtek

唯一对我有用的是 Elementary OS Luna,一个 Ubuntu Fork。我在 x86 架构上。我在这里尝试了所有答案,但最终决定从源代码安装它。

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

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 目录中工作,该目录应该已经在您的路径上。您应该验证它的位置:

which npm node

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

sudo chown -R $USER /usr/local

如果它不起作用,请检查您的路径:

echo $PATH

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


请分享问题所在,而不是将其标记下来。这个对我有用! :)
E
Eswar Rajesh Pinapala

以下方法对我有用,感谢 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

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

安装节点后,安装 npm

sudo apt-get install npm

M
Michał Miszczyszyn

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

> npm --version < 2.0.0-alpha-5

注意:我没有要求提供不稳定的版本,我是在 OSX 上的 brew install npm 之后才得到的。

降级 npm 为我解决了这个问题。

安装稳定版 npm 的最简单方法是 npm install -g npm,但它在某些情况下可能不起作用,并且可能需要降级 node.js。


s
serby

可能是当时 npm 注册表已关闭或您的连接断开。

无论哪种方式,您都应该升级 node 和 npm。

我建议使用 nave 来管理您的节点环境。

https://npmjs.org/package/nave

它允许您轻松安装版本并在它们之间快速跳转。


g
godzilla

对于树莓派,我找到并修改了一个 solution 我发现
这是我运行的

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


t
timbo

@therefromhere 的答案是最好的。然而,Node 版本不断向前和向上移动,并且版本控制因 io.js 的重新合并而变得复杂。按照他回答中的步骤,您最终会得到 Node 版本 0.10.25 - 不是最新版本。

您仍然应该清除任何现有的 node/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 或更高版本,您应该查看 information about running on older distros

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

PPPS npm 与 node 一起安装。安装后,您可以使用 sudo npm install npm -g 更新到最新的 npm


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅