363

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
4

14 に答える 14

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
于 2015-02-24T19:21:02.020 に答える
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
于 2014-06-03T10:20:39.770 に答える
10

ランダムなnpmインストールエラー(エラーが発生するパッケージが異なる時間(ただし同じ環境)で異なる場合)で私にとってうまくいったことの1つは、これを使用することです:

npm cache clean

そして、プロセスを繰り返します。その後、プロセスはよりスムーズに進むように見え、実際の問題とエラー メッセージが表示されます。そこで修正してから続行できます。

これは、Docker インスタンス内のかなり裸の Ubuntu インストールで、一連のパッケージ全体の npm install を実行した経験に基づいています。Ubuntu にビルド/メイク ツールがない場合があり、何らかの理由でキャッシュを消去するまで、npm エラーは実際の問題を示しません。

于 2014-04-04T00:57:08.680 に答える
7

この問題は https プロトコルが原因であり、これが他のソリューションが機能する理由です (非セキュア プロトコルに切り替えることによって)。

私にとって最善の解決策は、npm を含むノードの最新バージョンをコンパイルすることでした。

apt-get purge nodejs npm
git clone https://github.com/nodejs/node ~/local/node
cd ~/local/node
./configure
make
make install
于 2014-03-27T00:23:11.587 に答える
6

現在、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 の両方がインストールされることに注意してください。

于 2014-09-22T19:39:21.667 に答える
5

Ubuntuフォークである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

メイクには時間がかかる場合があります。完了すると、node と npm がインストールされ、既にパス上にあるはずの /usr/local/bin ディレクトリで動作するはずです。それがどこにあるかを確認する必要があります。

which npm node

また、それを機能させるためにパーミッションを変更する必要がありました。

sudo chown -R $USER /usr/local

うまくいかない場合は、パスを確認してください。

echo $PATH

この方法でインストールすると、apt-get パッケージ マネージャーによって管理されないことに注意してください。乾杯!

于 2014-12-20T19:11:45.410 に答える
2

最近、node.js(および必然的にnpm)を最新バージョンにアップグレードした後、この問題が発生しました:

> npm --version < 2.0.0-alpha-5

注: 不安定なバージョンを要求したわけではなくbrew install npm OSXで入手しただけです。

npm をダウングレードすると問題が解決しました。

安定した npm をインストールする最も簡単な方法はnpm install -g npm、状況によっては機能しない可能性があり、その場合は node.js のダウングレードが必要になる場合があります。

于 2014-08-01T12:47:42.810 に答える
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 を当時の最新の linux-arm-pi である 10.28 に変更することでした。

于 2015-01-14T06:53:25.123 に答える
1

その時点で npm レジストリがダウンしていたか、接続が切断された可能性があります。

いずれにせよ、ノードと npm をアップグレードする必要があります。

ノード環境の管理にはnaveを使用することをお勧めします。

https://npmjs.org/package/nave

バージョンを簡単にインストールし、それらの間をすばやく移動できます。

于 2012-10-16T16:13:23.570 に答える