NodeJs yüklenemiyor: / usr / bin / env: node: Böyle bir dosya veya dizin yok


302

GruntJs kullanmak için nodeJs benim Ubuntu 14.04 içine yüklemeye çalışıyorum.

Ubuntu'yu farklı şekilde yapmayı okudum ( sorunlar? ), Bu yüzden yüklemek için yaptığım şey bu:

sudo apt-get install npm

sudo npm install -g grunt-cli

Bundan sonra grunt yazarak hatayı aldım:

/usr/bin/env: node: No such file or directory

Bu yüzden denedim:

curl -sL https://deb.nodesource.com/setup | sudo bash -

sudo apt-get install -y nodejs

sudo apt-get update

Ve tekrar deniyorum ve hala hatayı alıyorum, denedim:

sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

sudo apt-get install -y nodejs

Bu mesajı aldım:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

Her ihtimale karşı bir temizlik denedim:

sudo apt-get autoremove

Ama hayır, hata hala orada: homurdanma yazdığımda hala alıyorum /usr/bin/env: node: No such file or directory

Ne yapmalıyım?

Yanıtlar:


794

Bir symlink yapmak sorunu çözer:

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

(Teşekkürler ve +1 bodokaiser cevap ).


97
sudo apt-get install nodejs-legacybu bağlantıyı da oluşturur, paketler.debian.org/sid/nodejs-legacy
anatoly techtonik

1
Symlink sorunu çözdü ve çok fazla geliştirme süresi kazandı. Teşekkürler!
Farzad YZ

Bu düzeltme ciddi bir cankurtaran. Özellikle, buradaki sabitleme izinleri kılavuzunu izliyorsanız docs.npmjs.com/getting-started/fixing-npm-permissions
Josh Frankel

Teşekkür ederim! Bu öğleden sonra kurtardı, google bulut Linux üzerinde bir düğüm uygulaması kurmaya çalışırken.
jovan

1
Düğümünüze which nodedoğru yolu elde etmek için kullanmalısınız. Bu yüzden komut şöyle olurduln -s "$(which node)" /usr/bin/node
technogeek1995

117

Sorun düğüm sürümünde değil. Bunun yerine, Ubuntu'da NodeJS'nin varsayılan olarak yüklenme şekli budur. Ubuntu'da bir Düğüm uygulaması çalıştırırken nodejs somethign.jsbunun yerine çalıştırmanız gerekirnode something.js

Yani terminalde çağrılan uygulama adıdır nodejsve değildir node. Olarak alınan basitçe ileri bütün komutlar sembolik bağ ihtiyaç vardır olmasının nedeni budur nodeiçin nodejs.

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

6
Eğer "ln: sembolik bağlantı '/ usr / bin / node'" hatası
almıyorsanız

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

54

En son düğüm sürümünü yükseltmeniz gerektiğini düşünüyorum

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

1
Sadece bir ipucu; kod satırlarınızı 4 boşlukla girinti;) Ayrıca, nNode.JS ile ilişkilendirilmiş bir komut değildir.
Qix - MONICA

Üzerindeki paket açıklamaya dayalı @ David NPM : "etkileşimli All Your Düğüm Sürümleri Yönet"
frdmn

Benim için sorunu
çözdüm

bir laravelprojeyi windowsmakineden kopyaladım ubuntu 16.04ve laravel mixsorun yaşadım npm run watchVE bu çözüm benim için çalıştı ve şimdi sorun gitti
AN

29

ubuntu terminalindeki düğüme nodejs komutunu kullanarak erişebiliyorsanız, bu sorun -düğümü ve düğümü kullanarak sembolik bir bağlantı oluşturmak-kullanarak

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

ve bu sorunu çözebilir




9

Bu genellikle bir yanlış adlandırma hatası buldum, eğer bir paket yöneticisinden yüklerseniz bin sadece nodejs olarak adlandırılabilir, bu yüzden sadece bu şekilde symlink yapmanız gerekir

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

1
Olumsuz bir geri bildirim eklemek yerine, yorumda neyin yanlış olduğunu bana bildirin, böylece size yardımcı olabilirim. Özellikle bir şeyleri daha iyi yönetmenize yardımcı oluyorsa, bir symlink oluşturmada yanlış bir şey olmadığından.
Ahmad Awais

1
Ben kendim için bu yaklaşımı tercih ediyorum. Temiz.
Muhammed Gelbana

8

Zaten kurulu nodejs'leriniz varsa (kontrol edin which nodejs) ve başka bir paket kurmak istemiyorsanız, root olarak şunları yapabilirsiniz:

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99

Bu Debian'ın doğru yoludur.
Tonin

6

Yudum kullanırken bu hatayı aldım.

~$ gulp

/ usr / bin / env: 'düğüm': Böyle bir dosya veya dizin yok

Bu, / usr / bin dizininin tüm izinlere sahip olduğunu aklınızda bulundurmanız gereken aşağıdaki komutu uygulayarak kaldırılmıştır.

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

bu benim için çalışıyor ..


5

Düğümünüzü nasıl kurduğunuza bağlı olarak, çoğu zaman / usr / bin / içinde olmayabilir, kendi durumumda yüklemek için nvm kullandım, bu yüzden düğümüm ./nvm/versions oldu.

Bu komutu kullanarak which nodeyolu buldum, ancak işi kolaylaştırmak için bu komutu çalıştırabilirsiniz.

nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node

Yukarıdaki komut düğümünüzün konumunu alır ve sizin için bir bağlantı oluşturur.


5

Bunun iki çözümü var:

a) PATH değişkeninizi "/ usr / local / bin" içerecek şekilde ayarlayın

export PATH="$PATH:/usr/local/bin"

b) PATH'nizde olan "/ usr / bin" için bir sembolik bağlantı oluşturun

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

Umut ediyorum bu yardım eder.


4

En ln -skolay çözüm olsa da, bir açıklama:

Başka bir paketle çakışma nedeniyle, Ubuntu depolarındaki yürütülebilir dosyaya düğüm yerine düğüm adı denir. Yazılımı çalıştırırken bunu aklınızda bulundurun.

Bu tavsiye, kurulum sırasında gelir sudo apt-get install nodejs.

Yani bilinen başka bir araç (ne yaptığını bilmiyorum. Ubuntu depoları tarafından bilinirken, 16.04'te varsayılan olarak yüklenmez) bu ad alanını kaplar.

Ubuntu, bu 'temiz' düzeltmek için nasıl bir tavsiye teklif olsaydı, el ile yaparak paket başka türlü ne yapacaktı, güzel olurdu. (bir çarpışma bir çarpışma olarak kalır ... eğer + gerçekleşeceği zaman)


1
@ tom-hale cevabı bunun için Ubuntu yoludur. Doğru düğümü belirtmek için alternatifler kullanıyorsunuz
kervin


2

Davam bağlantı için vermedi DEĞİL çalışmak aşağıdaki gibi

ln -s / usr / bin / düğüm / usr / bin / düğüm

Ancak / usr / local / bin / lessc dosyasını root olarak açabilir ve ilk satırı düğümden düğüm olarak değiştirebilirsiniz.

- #! / usr / bin / env düğümü

+ #! / usr / bin / env düğümü


2

Sorunu çözmek için bu komutları izleyin.

Bir terminalde:

  1. NPM önbelleğinin tamamını temizleyin:

    $ sudo npm cache clean -f
  2. sudo npm install -g n
  3. Node.js'nin en son kararlı sürümünü yükleyin:

    sudo n stable

Şimdi Node.js'nin en son sürümü yüklendi. Aşağıdakileri kullanarak sürümü kontrol edin:

node -v


0

Benim için kabul edilen cevap henüz işe yaramadı. Burada önerildiği gibi başladım:

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

Bunu yaptıktan sonra aşağıdaki hatayı alıyordum:

/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 izin notifier = gerektirir ('güncelleme-notifier') ({pkg}) ^^^

SyntaxError: Object. modülünde export.runInThisContext'de (vm.js: 53: 16) henüz blok modundaki bildirimler (let, const, function, class) desteklenmiyor. Module.load adresindeki Module._extensions..js (module.js: 417: 10) Function.Module.runMain (modül.js: 301: 12) konumundaki Function.Module.runMain ( module.js: 442: 10) başlangıçta (node.js: 136: 18) node.js: 966: 3

Çözüm, düğümün en son sürümünü https://nodejs.org/en/download/ adresinden indirmekti .

Sonra yaptım:

sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1

Şimdi güncelleme nihayet başarılı oldu: npm -v3.2.1'den 6.4.1'e değiştirildi

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.