모듈을 설치하는 중“레지스트리에서 메시지를 가져 오지 못했습니다”


355

npm에서 노드 모듈을 설치할 수 없습니다.

npm install socket.io

위의 명령으로 인해 출력이 낮아져 socket을 설치할 수 없습니다.

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

12
꽤 오래된 npm버전입니다. 최신으로 업데이트하고 다시 시도하십시오.sudo npm update npm -g
JohnnyHK

1
johny 귀하의 의견에 감사드립니다. 실제로 npm을 업데이트 해야하는 경우 nodejs도 업데이트해야합니다.
Dexter

1
nodejs도 업데이트 할 필요는 없지만 어떤 이유로 6.x 버전에 묶이지 않으면 권장합니다.
JohnnyHK

HTTP 작동 registry.npmjs.org가 HTTPS를 수신하지 않기 때문에 HTTPS가 지원되지 않습니다.
Mark

1
나는 보통 공식 사이트 에서 최신 버전의 nodejs를 다운로드하고 컴파일합니다 . 내가 사용하는 배포판 (보통 우분투 LTS)은 너무 오래된 버전입니다.
Alex Lokk

답변:


805

리포지토리 버전 인 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

참고-이전 조언은 Chris Lea의 저장소를 사용하는 것이 었으며 이제 노드 소스로 마이그레이션했습니다.

부터 : here


13
nodejs 패키지에는 npm 및 nodejs-dev가 포함되어 있으므로 ppa에서 nodejs를 설치하면 npm에 필요한 모든 것을 얻을 수 있습니다.
chawkinsuf 2019

2
감사! 이것은 나를 위해 일했다! 이것은 "Ask Ubuntu"에 허용되는 답변이지만 많은 우분투 사용자가 허용 된 답변이 도움이 될 것으로 보입니다.
dannyman

2
이것을 raspbery pi에서 실행하고 nodejs 또는 npm을 실행할 때 세그먼트 오류가 발생했습니다
godzilla

5
이 지침을 사용하고 raspberry pi (Raspbian)에서 세그먼트 오류가 발생한 후 포트를 제거 하고이 지침을 따랐습니다. gist.github.com/justinjenkins/16adc15338bb265f6808 이제 작동합니다!
저스틴 젠킨스

2
의심없는 신규 이민자가 인터넷의 확인되지 않은 소스에서 루트 셸로 코드를 파이프 하는 것만 큼 현명하지 않고 안전하지 않은 작업을 수행 할 것을 권장합니다 . 무책임한 것은 거의 다루지 않습니다. 체크섬 확인 권장 사항이 아닌 경우 최소한 안전에 대해주의해야합니다.
sorpigal

644

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를 통해 설치하십시오.


6
그래, 이것도 나를 위해했다. 공유해 주셔서 감사합니다!
Alix Axel 16:04의

7
라즈베리 파이를 사용하는데, 이것은 내가 사용해야했던 것과 같은 명령입니다. registry.npmjs.org/pi-gpioregistry.npmjs.org/pi-gpio로 변경했습니다 . 파이에 의해 액세스 할 수없는 https와 무슨 일이 확실하지
Jdahern

28
경고 : 이렇게하면 / insecure / 연결을 통해 리소스가 끌어옵니다. 파일은 받기 전에 변경 될 수 있습니다. 다시 : 이것은 안전하지 않습니다.
Lodewijk

38
이 안전하지 않은 솔루션은 작동하더라도 사용하지 마십시오. Node.js의 apt-get 버전이 너무 오래되었습니다 (0.6.12). GitHub에서 최신 안정 버전을 설치하여 문제를 해결했습니다.
Louis Ameline

2
다른 nodejs 패키지에서는 작동하지 않습니다. 공식 사이트 에서 최신 버전의 node.js를 다운로드 하여 직접 컴파일하고 있습니다.
Alex Lokk

32

우분투에 있습니다. apt-get을 사용하여 노드를 설치했습니다. Npm은 해당 패키지에 포함되어 있지 않으므로 별도로 설치해야합니다. 나는 그것이 효과가 있다고 가정했지만 우분투 배포판의 npm 버전은 구식이었습니다.

노드 위키 에는 다음과 같은 명령이 있습니다.

최신 버전의 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은 이미 포함되어 완벽하게 작동했습니다.


18

나에게 그것은 일반적으로 프록시 문제이며 모든 것을 시도합니다.

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

4
npm config set strict-ssl falsewroked를 사용하여 엄격한 SSL을 사용 하지 않도록 설정
Mayura

17

add-apt-repository가 작동하려면 software-properties-common을 설치해야합니다. 그래서 그것은

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

3
위의 단계 후에, 우리 모두가해야 할 일은 : sudo npm install -g karma
vijay

10

임의의 npm 설치 오류 (오류가있는 패키지가 다른 시간 (그러나 동일한 환경)에서 다른 경우)에서 나를 위해 일한 한 가지는 다음을 사용하는 것입니다.

npm cache clean

그런 다음 프로세스를 반복하십시오. 그러면 프로세스가 더 순조롭게 진행되고 실제 문제와 오류 메시지가 나타나 수정하고 진행할 수 있습니다.

이것은 Docker 인스턴스 내부의 Ubuntu 설치에서 전체 패키지 묶음의 npm 설치 실행 경험을 기반으로합니다. 때로는 우분투에서 빌드 / 작성 도구가 누락되어 어떤 이유로 캐시를 정리할 때까지 npm 오류에 실제 문제가 표시되지 않습니다.


예, 나는 거기에서 나온 대답과 함께 이것을 실행해야한다는 것을 알았습니다.
John Powell

7

이 문제는 https 프로토콜로 인해 발생하므로 다른 솔루션이 작동합니다 (비보안 프로토콜로 전환).

나에게 가장 좋은 해결책은 npm을 포함하는 최신 버전의 노드를 컴파일하는 것이 었습니다.

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

6

이제 joyent (기본 nodejs 후원자)의 공식 지침이 있습니다 . 우분투의 경우 :

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

다른 유닉스 배포판의 경우, osx와 windows는 링크를 참조하십시오. 이것은 노드와 npm을 모두 설치합니다.


5

Ubuntu Fork 인 Elementary OS Luna에서 저에게 효과적이었습니다. 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

제작에 시간이 걸릴 수 있습니다. 완료되면 이미 경로에 있어야하는 / usr / local / bin 디렉토리에 node 및 npm이 설치되어 작동해야합니다. 어디에 있는지 확인해야합니다.

which npm node

또한 작동하도록 권한을 변경해야했습니다.

sudo chown -R $USER /usr/local

작동하지 않으면 경로를 확인하십시오.

echo $PATH

이 방법으로 설치하면 apt-get 패키지 관리자가 관리하지 않습니다. 건배!


이것을 표시하는 대신 문제가 무엇인지 공유하십시오. 그것은 나를 위해 작동합니다! :)
radtek

2

아래 방법은 Kudos에서 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가 아닌 command node로 node를 호출 할 수 있습니다.

노드가 설치되면 npm을 설치하십시오.

sudo apt-get install npm

2

최근 node.js (및 불가피하게 npm)를 최신 버전으로 업그레이드 한 후이 문제가 발생했습니다.

> npm --version < 2.0.0-alpha-5

참고 : 불안정한 버전을 요청 하지 않았으며 brew install npmOSX에서 방금 얻었습니다 .

npm을 다운 그레이드하면 문제가 해결되었습니다.

안정적인 npm을 설치하는 가장 쉬운 방법은 npm install -g npm일부 환경에서는 작동하지 않을 수 있으며 node.js의 다운 그레이드가 필요할 수 있습니다.


1

npm 레지스트리가 다운되었거나 연결이 끊어졌을 수 있습니다.

어느 쪽이든 노드와 npm을 업그레이드해야합니다.

nave 를 사용하여 노드 환경을 관리하는 것이 좋습니다 .

https://npmjs.org/package/nave

버전을 쉽게 설치하고 그 사이를 빠르게 이동할 수 있습니다.


1

내가 발견하고 수정 된 라즈베리 파이에 대한 솔루션 내가 찾은
이곳은 내가 달릴 것입니다

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였습니다.


0

@therefromhere의 대답이 가장 좋습니다. 그러나 노드 버전은 계속해서 증가하고 있으며 버전 관리는 io.js의 재결합으로 인해 복잡해졌습니다. 그의 대답의 단계에 따라 노드 버전으로 끝납니다.0.10.25 최신 버전이 아닌 .

기존 노드 / npm 패키지를 계속 제거해야합니다.

sudo apt-get purge nodejs npm

https://github.com/nodesource/distributions#debinstallnodesource deb 설치 페이지로 이동하십시오 .

모든 Node.js 버전은 위의 페이지에 Linux 명령과 함께 설치됩니다. 그리고이 패키지들은 데비안과 우분투 에서 작동합니다 .

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은 노드와 함께 설치됩니다. 설치가 완료되면 최신 npm으로 업데이트 할 수 있습니다sudo npm install npm -g

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.