Herhangi bir modül yüklenmeye çalışılırken “mesaj kayıt defterinden alınamadı”


355

Npm'den herhangi bir düğüm modülü yükleyemiyorum.

npm install socket.io

Yukarıdaki komut aşağıdaki çıktıya neden oldu, socket.io'yu yükleyemedi

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 Sürümüm:

[applmgr@dev node_modules]$ npm --version
1.1.0-3

NodeJS Sürümüm:

[applmgr@dev node_modules]$ node --version
v0.6.10

12
Oldukça eski bir npmversiyon. En son sudo npm update npm -g
sürüme

1
yorumunuz için johny teşekkürler, aslında ben de nodejs güncellemek gerekir npm güncellemek gerekirse
Dexter

1
Düğümleri de güncellemeniz gerekmez, ancak herhangi bir nedenle 6.x sürümüne bağlı değilseniz bunu tavsiye ederim.
JohnnyHK

HTTP çalışır; HTTPS bunu yapmaz, çünkü Registry.npmjs.org HTTPS'yi dinlemez.
Mark

1
Genellikle resmi siteden nodejs'in en son sürümünü indirir ve derlerim . Kullandığım dağıtımların (genellikle Ubuntu LTS) çok eski bir sürümü var.
Alex Lokk

Yanıtlar:


805

Depo sürümü olan npm v1.1.4(ve node v0.6.12) ile bu sorunu yaşadım Ubuntu 12.04.

Bu sürümün npmartık desteklenmediği anlaşılıyor, düğümün güncellenmesi (ve onunla npm) sorunu çözdü.

İlk olarak, eski sürümü kaldırın (isteğe bağlı, ancak bence bu, global modüllerde yönlendirilmeyen bir sorunu düzeltti).

sudo apt-get purge nodejs npm

Ardından nodesource'un repo'yu etkinleştirin ve yükleyin:

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

Not - önceki tavsiye Chris Lea'nun repo'sunu kullanmaktı, şimdi bunu kaynak kaynağına geçirdi, bkz:

Gönderen: burada


13
Nodejs paketinin npm ve nodejs-dev içerdiğini unutmayın, bu yüzden ppa'dan nodejs kurmak npm için gereken her şeyi size getirir.
chawkinsuf

2
Teşekkürler! Bu benim için çalıştı! Bu, "Ubuntu'ya Sor" için kabul edilen cevap olacaktır, ancak Ubuntu olmayan pek çok kullanıcının kabul edilen yanıtı faydalı bulduğu görülüyor.
dannyman

2
Bu raspbery pi üzerinde koştu ve nodejs veya npm çalışırken Segmentation hatası var
godzilla

5
Bu talimatları kullandıktan ve ahududu pi (Raspbian) üzerinde bir Segmentasyon hatası aldıktan sonra bağlantı noktasını kaldırdım ve bu talimatları izledim gist.github.com/justinjenkins/16adc15338bb265f6808 şimdi çalışıyor!
Justin Jenkins

2
Şüphesiz yeni gelenlerin internette doğrulanmamış bir kaynaktan bir kök kabuğa boru kodu kadar akılsız ve güvenli olmayan bir şey yapmalarını önermek için -1 . Sorumsuz, bunu zar zor örtüyor. Bir sağlama toplamını doğrulamak için bir öneri değilse, en azından güvenlik konusunda bir uyarı almalısınız.
sorpigal

644

https://github.com/isaacs/npm/issues/2119

Aşağıdaki komutu yürütmek zorunda kaldım:

npm config set registry http://registry.npmjs.org/

Ancak, npmyükleme paketleri güvenli olmayan bir HTTP bağlantısı üzerinden yapılır. Mümkünse,

npm config set registry https://registry.npmjs.org/

bunun yerine HTTPS üzerinden yüklemek.


6
Evet, bu da benim için yaptı. Paylaşım için teşekkürler!
Alix Axel

7
Bir ahududu pi kullanarak ve bu kullanmak zorunda aynı komut. değişti registry.npmjs.org/pi-gpio için registry.npmjs.org/pi-gpio . Pi tarafından erişilemez https ile emin değilim
Jdahern

28
Uyarı: Bu, kaynakları bir / güvensiz / bağlantı üzerinden çeker. Dosyalarınız alınmadan önce değiştirilebilir. Tekrar: Bu güvenli değil.
Lodewijk

38
Çalışıyor olsa bile bu güvenli olmayan çözümü kullanmayın. Node.js'nin apt-get sürümü çok eski (0.6.12); GitHub'dan en son kararlı sürümü yükledim ve sorunu çözdü.
Louis Ameline

2
Diğer bazı nodejs paketleri için çalışmaz. Sadece resmi siteden node.js'nin daha yeni bir sürümünü indiriyorum ve elle derliyorum.
Alex Lokk

32

Ubuntu'dayım. Düğümü yüklemek için apt-get kullandım. Npm bu pakete dahil edilmedi, bu yüzden ayrı olarak kurulması gerekiyordu. Bunun işe yarayacağını varsaydım, ama görünüşe göre Ubuntu dağıtımındaki npm sürümü modası geçmişti.

Düğüm wiki'sinde şu talimatlar bulunur:

Düğümün son bir sürümünü edinmek veya eski Ubuntu ve diğer uygun tabanlı dağıtımlara yüklemek birkaç ek adım gerektirebilir. Örnek kurulum:

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

Bundan sonra, npm zaten dahil edildi ve mükemmel çalıştı.


18

Benim için genellikle bir proxy sorunu ve her şeyi deniyorum:

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 falseBenim için wroked kullanarak Sıkı SSL devre dışı bırakma .
Mayura

17

Ayrıca add-apt-repository'nin çalışması için ortak olan yazılım özelliklerini de yüklemeniz gerekir. bu yüzden olacak

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
Yukarıdaki adımlardan sonra, tek yapmamız gereken şey: sudo npm install -g karma
vijay

10

Rastgele npm yükleme hatalarıyla benim için çalışan bir şey (hata yapan paketin farklı zamanlarda (ancak aynı ortamda) farklı olduğu yerlerde:

npm cache clean

Ve sonra işlemi tekrarlayın. Daha sonra süreç daha düzgün görünüyor ve gerçek sorun ve hata mesajı ortaya çıkacak, burada düzeltebilir ve devam edebilirsiniz.

Bu, bir sürü paketin npm kurulumunu bir Docker örneği içinde oldukça çıplak bir Ubuntu kurulumu altında çalıştırma deneyimine dayanır. Bazen Ubuntu'dan eksik oluşturma / yapma araçları vardır ve npm hataları, herhangi bir nedenle önbelleği temizleyene kadar gerçek sorunu göstermez.


Evet, oradan gelen cevapla birlikte bunu çalıştırmak zorunda olduğumu buldum.
John Powell

7

Bu sorun https protokolünden kaynaklanmaktadır, bu nedenle diğer çözüm çalışır (güvenli olmayan protokole geçerek).

Benim için en iyi çözüm, npm'i içeren düğümün en son sürümünü derlemekti.

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

6

Artık neşeli (birincil nodejs destekçisi) resmi talimatlar var . Ubuntu için:

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

Diğer unix dağıtımları, osx ve pencereler için bağlantıya bakın. Bunun hem düğümü hem de npm'yi yükleyeceğini unutmayın.


5

Bir Ubuntu Çatalı olan İlköğretim OS Luna'da benim için çalışan tek şey. X86 mimarisindeyim. Burada tüm cevapları denedim ama sonunda kaynağından kurmaya karar verdim.

İlk olarak, paket yöneticisini kullanarak kurulmadığından emin olun:

sudo apt-get purge nodejs npm -y

En son kaynağı aramak ve indirmek için indirme sayfasına gittim, http://nodejs.org/download/ . Almak için curl, wget veya tarayıcınızı kullanabilirsiniz:

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

Marka biraz zaman alabilir. İşiniz bittiğinde, / usr / local / bin dizininizde zaten yolunuzda olması gereken düğüm ve npm kurulu olmalıdır. Nerede yaşadığını doğrulamalısınız:

which npm node

Ayrıca çalışmak için izinlerini değiştirmek zorunda kaldı:

sudo chown -R $USER /usr/local

Eğer işe yaramazsa yolunuzu kontrol edin:

echo $PATH

Bu şekilde yüklendiğinde, apt-get paket yöneticisi tarafından yönetilmeyeceğini unutmayın. Şerefe!


Lütfen bunu işaretlemek yerine sorunun ne olduğunu paylaşın. Benim için çalışıyor! :)
radtek

2

Aşağıdaki yöntem benim için çalıştı, Kudos kullanıcı github için: midnightcodr

Kurulu olan tüm nodejs / npm paketlerini kaldırdığınızdan emin olun.

sudo apt-get purge nodejs

sudo apt-get purge npm

Şimdi Node js'i aşağıdaki komutu kullanarak yükleyin (github'daki midnightcodr sayesinde)

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

Düğümü komut düğümü ile çağırabileceğinizi, düğümü değil çağırabileceğinizi unutmayın.

Düğüm yüklendikten sonra npm'yi yükle

sudo apt-get install npm

2

Son zamanlarda node.js (ve kaçınılmaz olarak npm) en yeni sürüme yükselttikten sonra bu sorun vardı:

> npm --version < 2.0.0-alpha-5

Not: Kararsız bir sürüm istemedim , daha sonra brew install npmOSX'te aldım .

Npm'yi düşürmek sorunu benim için düzeltti.

Kararlı npm'yi kurmanın en kolay yolu, npm install -g npmancak bazı durumlarda çalışmayabilir ve o zaman node.js'nin düşürülmesi gerekebilir.


1

Npm kayıt defteri o anda çökmüş olabilir veya bağlantınız kesilmiş olabilir.

Her iki durumda da düğümü ve npm'i yükseltmelisiniz.

Düğüm ortamlarınızı yönetmek için nave kullanmanızı tavsiye ederim .

https://npmjs.org/package/nave

Sürümleri kolayca yüklemenizi ve aralarında hızlı bir şekilde atlamanızı sağlar.


1

ahududu pi için buldum ve değiştirdim bir çözüm
burada buldum ne koştu

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

yaptığım tek mod, o zamanlar en son linux-arm-pi olan 10.25'ten 10.28'e değiştirmekti


0

o sorunun cevabı en iyisidir. Ancak, Düğüm sürümleri her zamankinden yukarıya ve yukarıya taşınmıştır ve sürümleme io.js'nin yeniden birleşmesi nedeniyle karmaşıktır. Cevabındaki adımları izleyerek 0.10.25, en son sürümü değil, Düğüm sürümünü alacaksınız .

Mevcut düğüm / npm paketlerini yine de

sudo apt-get purge nodejs npm

sonra gidin ve https://github.com/nodesource/distributions#debinstall adresindeki nodesource deb kurulum sayfasına bakın .

Tüm Node.js sürümleri yukarıdaki sayfada, bunları yüklemek için Linux komutlarıyla listelenmiştir . Ve bu paketler hem Debian hem de Ubuntu üzerinde çalışacak .

PS: Ubuntu Precise veya Debian Wheezy'de Node v4.4 veya üstünü çalıştırmak istiyorsanız , eski dağıtımlarda çalıştırma hakkındaki bilgileri gözden geçirmelisiniz .

PPS apt-get'iniz başarısız olursa , komut dosyası tamamlanmaz (Google başvuruları başarısız oldu apt-get update). Anahtarlığınıza eklenen NodeSource imzalama anahtarı ile ilgili mesajlar ve sizi bilgilendiren son bir mesaj görmelisiniz Run 'apt-get install nodejs' to install Node.js.

PPPS npm, düğüm ile kurulur. Kurulduktan sonra, en son npm'yesudo npm install npm -g

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.