Npm kullanırken “Böyle bir dosya veya dizin yok” hatası


34

Düğüm ve npm'yi burada verilen talimatları kullanarak kurdum

Düğümü başarıyla kullanabildim. Ancak, "Zorlu" düğüm modülünü yüklemeye çalışırken, aşağıdaki hatayı alıyorum:

$npm install formidable
bash: /usr/local/bin/npm: /usr/local/bin/node: bad interpreter: No such file or directory

Bir yaptığımda which npmaşağıdaki çıktıyı alıyorum:

$which npm
/usr/local/bin/npm

Burada npm ile ilgili neyin yanlış olduğu hakkında hiçbir fikrim yok - bunu nasıl düzeltebileceğim hakkında bir fikriniz var mı?


Ubuntu'ya Sormaya Hoş Geldiniz! Ben de Düğümü yükledim bkz /usr/local/bin/. Bağlandığınız talimatlarda kullandığınız paketler bunu yapmaz. Sanırım kaynaktan da başka bir Düğüm kurdunuz. Lütfen tüm hikayeyi anlat.
gertvdijk

@gertvdijk Peki, başlangıçta kurulmuş olan 0.8.14 düğümü vardı. Bunu 0.8.18'e yükseltmek istedim. Sonra koştum $sudo apt-get remove --purge nodejs npmama bu işe yaramadı. node --version0.8.18 kurulduktan sonra hala 0.8.14 gösterdi. Yani, şimdi yapamadığım bir gönderiyi takip ettim - temelde bunu which nodeizlemesi rm -r /usr/local/bin/...- temelde bu dizinin altındaki bazı düğümlerle ilgili dosyalar. Şimdi, bundan sonra, düğümü yeniden yükledim ve güncellenmiş sürümdü. İyi çalışıyor, ama npm değil.
user109187,

Evet, kaynaktan kurduğunuzda olan budur. Paket yönetiminizi ve sizi bir kullanıcı olarak karıştırır. Lütfen ne yaptığınızı bilmiyorsanız yazılımı yalnızca paket olarak yükleyin. Kaldırma talimatlarını kullanarak bu önceki sürümü yüklemek için kullandığınız komut dosyalarını doğru şekilde kaldırın. Ve daha fazla bilgi sağlamak için lütfen sorunuzu düzenleyin . Bu bir soru-cevap sitesi, tartışma forumu değil mi? :)
gertvdijk

@gertvdijk Dosyaları manuel olarak kaldırmak için talimat verilen yazıyı buldum - stackoverflow.com/a/5917184/1907800 . Buradaki yol / usr / bin / node
user109187

Yanıtlar:


51

@Gertvdijk ipucu alarak, senaryoyu kullanarak NPM'yi kaldırdım:

rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*

(ki bulunabilir Burada )

Yukarıdakileri yaptıktan sonra bile, başka bir hata aldım:

$ npm install formidable  
bash: /usr/local/bin/npm: No such file or directory

Böylece, hash -rterminalde koştum ( NPM'nin Yükseltme İşleminden Sonra Çalışmayacağına İlişkin talimatlar uyarınca ) ve işte - çalıştı. NPM şimdi çalışıyor!


1
Buradaki tek yararlı şey hash, başka bir düğüme / npm'ye işaret etmek için kullanılabilecek keşfedilmesiydi (birden fazla düğüm sürümüyle çalışmak
istersem

Güzel misafir kullanıcı.
LM_Fielding

4
hash -r beni kurtardı
diogo.abdalla

ne hashyapar!
Chanjung Kim,

11

Ubuntu ve bazı Linux dağıtımları olarak düğümün tercüman yüklemek /usr/bin/nodejsdeğil, /usr/local/bin/node.

Sen yüklemeden bu sorunu çözebilir nodejs-legacybir sembolik oluşturur paketi /usr/bin/nodejsiçin /usr/bin/node.

Çözüm:

sudo apt-get install nodejs-legacy

Kaynaklar: nodejs-legacy paketi


1
nodejs-legacyArtık yok gibi görünüyor .
Martín De la Fuente

2

Bir süre önce kaynaktan başka bir Düğüm sürümü kurdunuz. Bu, /usr/local/binşimdi kurulu göründüğü yol ile gösterilir .

  1. Yüklediğiniz kaynağı kaynaktan kaldırın. Bunun nasıl yapılacağına dair kaynakla birlikte verilen talimatlara bakın. Sisteminizin paket yönetimi ile çalışmayan yüklü yazılım komut dosyalarının nasıl kaldırılacağının tek bir yolu yoktur.
  2. Paketleri, sorunuzla bağlantılı olduğunuz talimatlarda listelenmiştir.
  3. which npmŞimdi /usr/binyükleme yolu olarak listelendiğini doğrulayın .

Genelde paketleri kaynaktan bir yere yüklemeniz gerekmez. Ve eğer yaparsanız, lütfen burada paket yönetimini geçersiz kıldığınızdan kaynaklanan sonuçların farkında olun.

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.