browsererify error / usr / bin / env: node: Böyle bir dosya veya dizin yok


85

Apt-get install ve tüm bağımlılıklar aracılığıyla js ve npm düğümlerini kurdum, ardından browsererify yükledim

npm install browserify -g

işlemden geçiyor ve doğru şekilde kurulmuş gibi görünüyor, ancak bu izlenecek yol başına basit bir paket yapmaya çalıştığımda

Şu hatayı alıyorum:

/ usr / bin / env: node: Böyle bir dosya veya dizin yok

görüntü açıklamasını buraya girin


hmm çalıştırılabilir düğümün / usr / bin veya / usb / bin / env içinde olup olmadığını kontrol etmelisiniz, en azından bu işletmeye özgü bir sorundur. Yerel tarayıcıyı doğrulayarak bu sorunu çözebilirsiniz.
bodokaiser

browserfy yürütülebilir dosyam / usr / local / bin / içinde ama yolun karıştığı başka bir şeyi mi çağırıyor?
Eduardo Dennis

3
ah nodej'leri ubuntu'da düğüme bağlamak zorundasınız. Ubuntu, düğümü nodejs olarak kurar ve sonra "ln -s / usr / bin / nodejs / usr / bin / node" gibi bir şey yapmanız gerekir, böylece sistemler onu düğüm olarak da bulur
bodokaiser

1
bu sorunu çözdü: -PI son bir saattir bu konuda kafamı kırıyor, lütfen kabul etmek için cevap formatını koyabilir misiniz?
Eduardo Dennis

1
işe yaradı sevindim gerçekten ben ilk :) yorumladı neden bu sorunlar şu olup olmadığından emin değildi
bodokaiser

Yanıtlar:


246

Bazı linux dağıtımları nodej'leri "düğüm" yürütülebilir olarak değil, "nodejs" olarak kurar.

Bu durumda, "düğüm" ikili dosyasından sonra birçok paket programlandığı için "düğüme" manuel olarak bağlanmanız gerekir. Benzer bir şey, "python" ile bağlantılı olmayan "python2" ile de ortaya çıkar.

Bu durumda kolay bir sembolik bağlantı yapabilirsiniz. Size paket ikili dosyaları yükleyen Linux dağıtımları /usr/biniçin

ln -s /usr/bin/nodejs /usr/bin/node

5
Bu, Ubuntu 14.04 için bir çözüm değildir , çünkü /usb/sbin/nodeax24-node'dur (nodejs ile ilgisi yoktur). Sadece sembolik bağlantı /usr/bin/nodeişe yaramayacak çünkü /usr/sbin/nodeilk sırada geliyor$PATH
Gareth

8
Bunu çözmenin doğru yolu kullanmaktır update-alternatives. cevabımı burada görün stackoverflow.com/a/24592328/454615
airtonix

1
aslında bunun hakkında daha fazla düşünmek ... sisteminizi kırmak istiyorsanız, ikilileri bu şekilde sembolize etmek harika bir alışkanlıktır.
airtonix

evet, bunu ince şekillerde bozduğunu fark ettim, daha iyi bir çözüm buldunuz mu?
Eduardo Dennis

1
@EduardoDennis, kullan update-alternatives. bu kesin durumlar için var.
airtonix

52

Yeni Cevap:

  1. Sistem paket yöneticiniz (dnf, apt-get, vb.) Aracılığıyla yüklediğiniz herhangi bir nodejs paketini kaldırın, her yükseltmeyi (lol) yeniden oluşturduğunuz saçma sembolik bağlantıları silin.
  2. NVM'yi kurun,
  3. nodejs'yi yüklemek için nvm kullanın: nvm install 6

Eski Cevap:

Sembolik bağlantılar oluşturmak veya başka bir düğüm paketi kurmaktan söz etmek sahte ve sürdürülebilir değildir.

Bunu çözmenin doğru yolu şudur:

  1. nodejs paketini apt-get ile zaten sahip olduğunuz gibi kurun
  2. update-alternativesnodejs ikilinizin sorumlu olduğunu belirtmek için kullanın#!/usr/bin/env node

Şöyle:

sudo apt-get install nodejs
sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100

Bu artık paket yükseltmeleri, dağıtım yükseltmeleri vb. Boyunca sürdürülebilir hale geliyor.


Bu benim sorunum için bir çözüm stackoverflow.com/questions/26155795/…
Alon Carmel

Teşekkürler, harika çözüm, sembolik bağlantılarla ilgili numara internette en çok tekrarlanan ama benim için işe yaramadı.
Emilia Tyl

Şimdi asıl doğru cevap, Linux'ta NVM ve Windows'ta Nodist kullanmaktır.
airtonix 01

35

Çalıştır apt-get install nodejs-legacy.

Bazı linux dağıtımları, node.js ikili adını değiştirerek onu birçok node.js paketiyle uyumsuz hale getirdi. Paket nodejs-legacy, bunu çözmek için bir sembolik bağlantı sağlar.


2
Bu, Ubuntu /usb/sbin/node14.04 için çözümdür çünkü ax24-node'dur (nodejs ile ilgisi yoktur). Sadece sembolik bağlantı /usr/bin/nodeişe yaramayacak çünkü /usr/sbin/nodeilk sırada geliyor$PATH
Gareth

Bana yardım etti. Teşekkürler!
Lapidus

apt-get install nodejs-legacy. windows için kullanıcı 'apt-get' bir iç veya dış komut, çalıştırılabilir program veya toplu iş dosyası olarak tanınmıyor diyor.
Swift

7

Nodej'leri NVM veya Nodejs Sürüm Yöneticisini kullanarak da kurabilirsiniz . Bir sürüm yöneticisi kullanmanın birçok yararı vardır . Bunlardan biri, bu konuda endişelenmenize gerek yok.


Talimatlar:


sudo apt-get update
sudo apt-get install build-essential libssl-dev

Önkoşul paketleri yüklendikten sonra, nvm kurulum komut dosyasını projenin GitHub sayfasından aşağı çekebilirsiniz. Sürüm numarası farklı olabilir, ancak genel olarak aşağıdaki sözdizimi ile indirip kurabilirsiniz:

curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh

Bu komut dosyasını indirecek ve çalıştıracaktır. Yazılımı adresindeki ana dizininizin bir alt dizinine kuracaktır ~/.nvm. Ayrıca, ~/.profiledosyayı kullanmak için gerekli satırları dosyanıza ekleyecektir .

Nvm işlevine erişmek için oturumu kapatıp tekrar oturum açmanız gerekir ya da ~ / .profile dosyasını kaynak olarak kullanabilirsiniz, böylece mevcut oturumunuz değişiklikleri bilir:

source ~/.profile

Artık nvm yüklediğinize göre, izole edilmiş Node.js sürümlerini kurabilirsiniz.

Yüklenebilecek Node.js sürümlerini bulmak için şunu yazabilirsiniz:

nvm ls-remote
. . .

v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14

Gördüğünüz gibi, bu yazının yazıldığı andaki en yeni sürüm v0.11.14'tür. Bunu yazarak kurabilirsiniz:

nvm install 0.11.14

Genellikle, nvm en son yüklenen sürümü kullanmaya geçer. Aşağıdakini yazarak nvm'ye yeni indirdiğimiz sürümü kullanmasını açıkça söyleyebilirsiniz:

nvm use 0.11.14

Node.js'yi nvm kullanarak kurduğunuzda, yürütülebilir dosya düğüm olarak adlandırılır. Şu anda kabuk tarafından kullanılan sürümü şunu yazarak görebilirsiniz:

node -v

Tamamlayıcı eğitimi burada bulunabilir


evet, artı ortam sürüm yöneticileri için. Bizimki bunu yapmanın doğru yolu olmasına rağmen kesinlikle benimkinden çok daha iyi bir cevap Nvm'nin daha çok üretim sunucularına değil etkileşimli iş istasyonlarına yönelik olduğunu söyleyeceğim (ama neden orada kullanamadığımı anlayamıyorum) ... kişisel olarak, üretimde docker imajlarını kullanmaya daha meyilliyim.
airtonix


0

Linux'ta atom oluşturduğumda da aynı problem gibi görünüyorum.

sudo apt-get install nodejs-dev

Sorumu düzeltin. Umarım size yardımcı olur.


0

Sembolik bağlantı istemiyorsanız, bunu yapabilirsiniz. Ubuntu'da çalışıyor

#!/usr/local/bin/node --harmony

uyum etiketi yeni ECMAscript uyumu içindir


0
  1. komutu çalıştırın which nodesonuç bir şey olacak

    /home/moh/.nvm/versions/node/v8.9.4/bin/node

  2. Yukarıda aldığınız yolu kopyalayın ve ardından 3. adımdaki komutu çalıştırın.

  3. ln -s /home/moh/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node


-1

"Nodejs" çağırmalısınız, "node" değil. Bunu doğrulamak node -viçin kabuğa yazın: hiçbir şey bulunamazsa deneyin nodejs -v. Bu bir sürüm numarası gösteriyorsa, kullanmanız gereken komuttur nodejsve değil node. Bu nedenle, sizin komut browserify çağrısını değiştirmek zorunda nodeiçin nodejs(aşağıda gösterildiği gibi): yerine

#!/usr/bin/env node

ile

#!/usr/bin/env nodejs

Komut dosyasını süper kullanıcı olarak da açmanız gerekebilir.

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.