"сообщение не удалось извлечь из реестра" при попытке установить любой модуль
Я не могу установить модуль 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.4
(и node 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