"сообщение не удалось извлечь из реестра" при попытке установить любой модуль

Я не могу установить модуль node из 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!     <[email protected]>
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:

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

Моя версия NodeJS:

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

Ответ 1

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.

Ответ 2

У меня была эта проблема с npm v1.1.4node v0.6.12), которые являются версиями репозитория Ubuntu 12.04.

Похоже, что эта версия npm больше не поддерживается, обновление node (и npm с ней) разрешило проблему.

Сначала удалите устаревшую версию (необязательно, но я думаю, что это исправило проблему, с которой я сталкивался с глобальными модулями, которые не были исправлены).

sudo apt-get purge nodejs npm

Затем включите ретрансляцию узлов и установите:

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

Примечание - предыдущий совет заключался в использовании Chris Lea repo, он теперь перенаправил это на nodeource, см.

От: здесь

Ответ 3

Я на Ubuntu. Я использовал apt-get для установки node. Npm не был включен в этот пакет, поэтому его нужно было установить отдельно. Я предположил, что это сработает, но, очевидно, версия npm в дистрибутиве Ubuntu устарела.

node 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 уже был включен и работал отлично.

Ответ 4

Вам также необходимо установить программные свойства, общие для работы 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

Ответ 5

Для меня это обычно проблема с прокси-сервером, и я пробую все:

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

Ответ 6

Одна вещь, которая сработала для меня со случайными ошибками установки npm (где пакет, в котором ошибки различаются в разное время (но в той же среде), должен использовать это:

npm cache clean

И затем повторите этот процесс. Затем процесс, кажется, станет более плавным, и появится реальная проблема и сообщение об ошибке, где вы сможете исправить это, а затем продолжить.

Это основано на опыте запуска установки npm целой группы пакетов под довольно простой установкой Ubuntu внутри экземпляра Docker. Иногда в Ubuntu отсутствуют средства сборки/создания, а ошибки npm не показывают реальной проблемы, пока вы не очистите кеш по какой-либо причине.

Ответ 7

Теперь есть официальные инструкции от радостного (основной помощник 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.

Ответ 8

Эта проблема связана с протоколом https, поэтому другое решение работает (путем переключения на незащищенный протокол).

Для меня лучшим решением было собрать последнюю версию node, которая включает в себя npm

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

Ответ 9

Единственное, что сработало для меня на Elementary OS Luna, вилке Ubuntu. Я нахожусь в архитектуре 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. Ура!

Ответ 10

Следующий метод работал у меня, Kudos для пользователя github: midnightcodr

Убедитесь, что вы удалили уже установленные пакеты nodejs/npm.

sudo apt-get purge nodejs

sudo apt-get purge npm

Теперь установите Node js, используя приведенную ниже команду (спасибо midnightcodr на github)

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

Обратите внимание, что вы можете вызывать Node с помощью команды Node и not nodejs.

Как только Node установлен, установите npm

sudo apt-get install npm

Ответ 11

Недавно у меня возникла эта проблема после обновления node.js(и неизбежно npm) до последней версии:

> npm --version < 2.0.0-alpha-5

Примечание. Я не запрашивал нестабильную версию, я просто получил ее после brew install npm в OSX.

Снижение числа npm исправило проблему для меня.

Самый простой способ установки стабильной версии npm - npm install -g npm, но при некоторых обстоятельствах это может не сработать, и тогда может понадобиться понижение node.js.

Ответ 12

Возможно, что в то время был отключен реестр npm или ваше соединение было отключено.

В любом случае вы должны обновить node и npm.

Я бы рекомендовал использовать nave для управления средами node.

https://npmjs.org/package/nave

Это позволяет вам легко устанавливать версии и быстро переключаться между ними.

Ответ 13

для малины pi я нашел и модифицировал решение Я нашел
вот что я побежал

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 в момент времени

Ответ 14

@therefromhere ответ лучший. Однако версии Node перемещались все время вперед и вверх, а управление версиями осложнялось remerge of io.js. Следуя шагам в его ответе, вы получите Node версию 0.10.25 - не самую последнюю версию.

Вы должны очистить все существующие пакеты node/npm с помощью

sudo apt-get purge nodejs npm

а затем перейдите на страницу установки nodesource deb на странице https://github.com/nodesource/distributions#debinstall.

Все версии Node.js перечислены на приведенной выше странице с помощью команд Linux для их установки. И эти пакеты будут работать на как Debian, так и Ubuntu.

P.S. Если вы хотите запустить Node v4.4 или выше на Ubuntu Precise или Debian Wheezy, вы должны просмотреть информацию о запуске более старых дистрибутивов.

P.P.S. Если ваш apt-get терпит неудачу, script не будет завершен (ссылки Google не сработали apt-get update). Вы должны увидеть сообщения о том, что ключ подписки NodeSource добавлен в ваш keyring, и окончательное сообщение, в котором указывается Run 'apt-get install nodejs' to install Node.js.

P.P.P.S. npm устанавливается с помощью Node. После установки вы можете обновить до последней версии npm с помощью sudo npm install npm -g