nodejs vs node üzerinde ubuntu 12.04


363

Burada verilen talimatlardan ubuntu'ya nodejs kurdum

node --versionTerminalde yazarken şunu görüyorum:
-bash: /usr/sbin/node: No such file or directory

/usr/sbin/Yine de dizindeki düğümü görebiliyorum .

Yazma npm --versiongösterileri 1.3.5
Yazma nodejs --versiongösterileriv0.10.15

Ayrıca, /usr/bin/dizindeki düğümü görebiliyorum .

Peki, nasıl çalışırım node?

Ayrıca bash yerine zsh kullanırsam nodekomut çalışır.


1
"/ Usr / bin / içinde düğüm görürseniz" çıktısı ls -l /usr/bin/nodenedir?
randunel

1
@randunel Bu çıktıyı aldımlrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node
Jatin

Shell rc üzerinde herhangi bir değişiklik yaptınız mı?
randunel

Düzenlemenizden sonra bir kabuk sorunu gibi görünüyor, export | grep PATHkullanmadığınızda çıktı ne zsh? ( /usr/bindiğer şeylerin yanı sıra yazdırmalıdır )
randunel

1
çözüm + açıklama burada: stackoverflow.com/questions/21168141/…
throbi

Yanıtlar:


599

Manuel olarak bir sembolik bağlantı oluşturmanız gerekir /usr/bin/node. Bash uyumlu kabuklar için kısayol:

sudo ln -s `which nodejs` /usr/bin/node

Veya standart olmayan mermiler kullanıyorsanız, bulduğunuz yolu sabit kodla yapıştırın which nodejs:

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

Daha sonra düzenleme

Bu açıklamayı yayınladığınız bağlantıda buldum

Düğüm paketiyle (Amateur Packet Radio Node Program) bir adlandırma çakışması var ve nodejs ikili dosyası düğümden nodejs olarak yeniden adlandırıldı. Bu çakışmayı önlemek için / usr / bin / node / usr / bin / nodejs dizinine symlink yapmanız ya da Amateur Packet Radio Node Programını kaldırmanız gerekir.

Daha sonra düzenleme

Bunu cevapladığımdan beri bir süre geçti. Burada gönderdiğim çözüm birkaç kez benim için çalıştı, ancak kullanıcılar yorumlarda birkaç çözüm daha bildirdi:

Gönderen @ user229115

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

AskUbuntu'dan (kullanıcı leftium)

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

Tamam! Her ne kadar, eğer kullanırsam zsh, nodekomut çalışır.
Jatin

1
Ayrıca, Amatör Paket Radyo Düğümü programını nasıl kaldırabilirim? Denedim sudo apt-get remove nodeama diyorPackage node is not installed, so not removed
Jatin

Kaldırmanız gerekmez, yorumlarınızdan sonra, bu bir düğüm paketi sorunu değil, bir kabuk sorunu gibi görünür.
randunel

@ randunel'in cevabı işe yaramadığı için benim için /usr/bin/env nodeçalışmadı. @ BennyMcBenBen çözümü işe yaradı
francoisrv

2
@ Tino'nun yanıtı doğru, nodejs-legacypaketin açıklamasına bakın. @BennyMcBenBen tarafından bağlanan cevap da benzer talimatlarla güncellendi.
tricasse

88

Bence bu:

sudo güncelleme alternatifleri --install / usr / bin / düğüm düğümü / usr / bin / nodejs 10

Debian alternatiflerini kullanma.


3
Bu kabul edilen cevaptan daha iyi bir seçenek gibi görünüyor / / usr / bin / klasörünü manuel olarak değiştirmiyor ve altyapıyı alternatif komutlara kullanıyor
Dominik Fretz

Denemedim, ama update-alternativebelgelere baktım . Gerçekten işe
yarıyorsa

3
bunun ne yaptığına daha açık olabilir misiniz?
bcorso

@DominikFretz meh. Sonuç, Debian'a özgü komut ve POSIX uyumlu komut kullanılarak tam olarak aynıdır. (Yapabilirdin update-alternatives --install /usr/local/bin/fribjazt node /usr/bin/nodejs 10.) Her birine kendi, ama ova tercih ederim ln.
kojiro

2
Bunun source ~/.bashrcyürürlüğe girmesi için
yapmalıydım

64

Görünüşe göre çözüm Ubuntu sürümleri arasında farklılık gösteriyor. Aşağıdaki Ubuntu 13.10 benim için çalıştı:

sudo apt-get install nodejs-legacy

HTH

Düzenleme: Temel kural:

İkili yüklediyseniz nodejsancak eksikse, /usr/bin/nodeyükleyin nodejs-legacy. Bu sadece eksik softlink'i oluşturur.

Testlerime göre, Ubuntu 17.10 ve üzeri sürümler yüklendikten /usr/bin/nodesonra zaten uyumluluk-softlink'i zaten var nodejs, bu yüzden nodejs-legacyartık gerekmediği için bu sürümlerde eksik.


artık nodejs-legacy artık korunmuyor. En son inşa 2013-04-10'da durur
francoisrv

8
nodejs-legacyfazla bakım gerektirmez. sudo ln -s nodejs /usr/bin/nodeEn azından LTS 14.04
Tino

4
Ubuntu 14.04'te, nodejs ve nodejs-legacy, aynı Node sürümünü (0.10.25) yükler. @Tino'ya +1.
Mark E. Haase

Debian Jessie de benim için çalışıyor. Bu, kabul edilen cevap olmalı, çünkü işler böyle olması gerekiyordu. Sadece amatör radyo paketini kullanan kişiler bunu yapmamalıdır. Radyo paketini neden krom-bsu gibi yeniden adlandırmadıklarını merak ediyorum.
Jérôme

Bu, sisteminizde düğümün 2 örneğiyle sonuçlanır ve bu artık korunmaz ... Bunun yerine nodejs'e bağlanmanızı öneririz.
PodTech.io

30

Aynı sorun Ubuntu 14.04'te de var.

Ben "nodejs" yükledim ve çalışıyor, ama sadece "nodejs" komutunu kullanıyorsam. "Düğüm" kullanmaya çalışırsam hiçbir şey olmaz.

Bu sorunu bir sonraki şekilde çözdüm:

  1. Nodejs-legacy uygulamasını yükleyin

    sudo uygun-get install nodejs-legacy

Bundan sonra, komut satırına "düğüm" yazdığımda "/ usr / sbin / node: böyle bir dosya veya dizin yok" hata iletisi alıyorum

  1. İkincisi, yaptığım, "nodejs" üzerinde sembolik bir bağlantı:

    sudo ln -s / usr / bin / düğümler / usr / sbin / düğüm

4
Sisteminizde tuhaf şeyler var. nodeiçine kurulmalı /usr/bin/ve kurulmamalıdır /usr/sbin/. Bana Ubuntu nodepaketini daha önce hamradio'dan yüklediymiş gibi görünüyor (bkz. Packages.ubuntu.com/trusty/all/node/filelist ) ve hash -rkabuk düzeyinde çalışmayı unuttum , böylece kabuk hala yanlış yolu hatırladı. İkincisi lnde bunu düzeltti, ama o kabuğu terk ettikten sonra artık gerekli değil.
Tino

BTW, yanlış cevaplar bile üç paket nedeniyle tüm sorunları açıklamak için çok benzer isimlerin hepsi: node( /usr/sbin/nodetamamen farklı bir şey için), nodejs( /usr/bin/nodejs) ve nodejs-legacy( /usr/bin/node, pakete bağlıdır nodejs).
Tino

Bu bana da oldu. Düğümü bir süre önce kaynaktan yüklemiştim. node -v => 0.10.2yaparken nodejs -v => 5.5.0. Komutun çalıştırılması which nodeher zaman bu yerel yüklemeye işaret etti. Sonunda, bunu unset NODE_PATHdüzeltmek için yerel kuruluma işaret ettim. Bundan sonra, node -v => 5.5.0ve npm install Düğüm => 5.0 bağlı paketleri işe başladı.
CHsurfer

11

Bu bana da oldu.

node -v => 0.10.2
nodejs -v => 5.5.0

Sorun, bir süre önce düğümü kaynaktan kurmuş olmamdı. Koşu

which node

her zaman bu yerel kuruluma işaret etti. Ayrıca,

echo NODE_PATH

yerel kurulum işaret etti.

dizinin kaynak yüklemeyle silinmesi yardımcı olmadı. Sadece düğüm komutunu kırdı. Sonunda, NODE_PATH çevresel değişkeninin ayarının kaldırılması ve düğümlerin temizlenmesi ve ardından düğümlerin yeniden yüklenmesi hile yaptı.

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

Bundan sonra,

node -v => 5.5.0

ve npm kurulumu Düğüm => 5.0 değerine bağlı olarak paketler için çalışmaya başladı.


Bu benim için çalıştı. Çok kötü bulmadan önce bir saat boyunca uğraştım.
Dustin Fraker

11

Düğüm Sürümü Yöneticisi (nvm)

Birden fazla nodejs sürümü kurmak ve bunlar arasında kolayca geçiş yapmak istiyorsanız, Node Version Manger'ı kullanmanızı öneririm . Ayrıca adlandırma sorununu da çözer ( nodevs nodejs)

Oldukça basit:

Bir nodejs sürümü yükleyin:

$ nvm install 4.4

Şimdi zaten kurulu olan sürüme ek olarak nodejs 4.4 var nodeve yeni kurulan sürüme ulaşmak için sadece komutu kullanabilirsiniz :

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

Daha fazla nodejs sürümü yükleyebilir ve bunlar arasında kolayca geçiş yapabilirsiniz:

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)

2
En sorunumu, çok teşekkürler çözüldü Yani, ben bazı yararlı komutu bulundu nvmüzerinde nasıl bir Ubuntu 14.04 sunucuda node.js yüklemek için
Huy Nguyen

1
bu benim için çalıştı. Ayrıca burada bulunan bir rehber: digitalocean.com/community/tutorials/…
Koen Cornelis

10

Tüm bunlara yeniyim, ama benim için basit bir takma ad çalıştı:

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

en azından işleri doğrudan bash'da çalıştırmak ve .js dosyalarını çalıştırmak için.


Olmadan çalıştı rlwrap. Teşekkürler!
Shurik

@Phill teşekkürler, harikasın!
Yusril Herlian Syah

9

Nodejs sitesindeki resmi talimatları kullanmaya ne dersiniz :

V7 için:

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

V6 için:

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

V4 için:

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

Bunları Windows bash (Linux için alt sistem üzerinden - 14.04) ve raspbian'dan (ARM Debian tabanlı) test ettim. Koşu sudo apt-get install -y nodejsilk kurulum komut dosyası çalıştırmadan Eğer düğüm 0.10 almakla sonuçlanır.

Derleme gerektiren yerel npm modüllerini kurmayı planlıyorsanız, şunları da çalıştırın:

sudo apt install -y build-essential

Not: Bu, tüm mimarilerdeki Debian tabanlı dağıtım için önerilen yoldur.


7

@ Randunel'in doğru cevabına ekleme (henüz SO hakkında yorum yapamıyorum):

Ayrıca / usr / bin / nodejs de / usr / local / bin / node symlink gerekiyordu.

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

Görünüşe göre, bu / usr / bin / node komutunu geçersiz kılıyordu.

Bunun nasıl kurulduğuna dair bir fikrim yok, ama umarım başka birine yardımcı olur, çünkü yukarıdakilerin neden benim için çalışmadığını anlamak bir acıydı.


7

Geç cevap, ancak güncel bilgiler için ...

Düğüm github kurulum benioku dosyasının tavsiye yöntemini kullanarak node.js'yi yüklerseniz , apt-get repo'yu yüklemek yerine , nodesource blog makalesindeki yönergeleri izlemenizi önerir , node.js nodekomutunu kullanarak çalışmalıdır , nodejskomutun yanı sıra yeni bir sembolik bağlantı yapmanıza gerek kalmadan.

Makaleden bu yöntem:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

Bunun uzak gelecekte değil, muhtemelen modası geçmiş olacak v0.12 için olduğunu unutmayın.

Ayrıca, bir şirket proxy'sinin (benim gibi) arkasındaysanız, proxy için gereken env değişkenlerini korumak için sudo komutuna -E seçeneğini eklemek istersiniz:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -


7

Bu benim için çalışıyor:

alias node=nodejs

Bu bağlantıdaki talimatları uyguladıktan sonra .


4

Ubuntu örneği (Ubuntu 16.x üzerinde test edilmiştir) çalıştıran bir AWS EC2 örneğinde iseniz, bu adımlar sizin için işe yarayabilir:

    sudo uygun-güncelleme
    sudo apt-get - purge kaldır düğüm -y
    sudo apt-get - purge kaldır nodejs -y
    sudo apt-get - purge kaldır legacy-node -y
    sudo rm / usr / bin / düğüm
    kıvırmak -sL https://deb.nodesource.com/setup_6.x | sudo bash -
    sudo uygun-get install nodejs -y
    düğüm -v

Her şey doğruysa, son komut aşağıdaki gibi bir çıktıya sahip olacaktır: v6.xx

Değilse, aşağıdakileri çalıştırın:

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

Umarım bu yardımcı olacaktır. Bana sihirli bir şekilde yardımcı oldu (hehe).


3

Ben aynı sorunu sembolik bağlantı bana yardımcı oldu: o sudo npm install -g phantomjs-prebuilt sonra sudo ln -s / usr / bin / nodejs / usr / bin / node

sorunsuz gitti


2

Düğümleri kurmanın en iyi yolu NVM (Düğüm Sürümü Yöneticisi)

Önceki sürümleri sil:

$ sudo apt-get temizleme düğümü
$ sudo apt autoremove

Ayrıca $ sudo rm -rf node_modules, bu klasörü içeren dizindeki tüm düğüm_modüllerini silin .

Düğüm ve Düğümler teknik olarak aynı şeydir. Sadece adlandırma değişti.

İlk nvm'yi yükleyin veya güncelleyin

kök olarak çalıştırmak

$ sudo su 

Sonra

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | darbe

VEYA

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | darbe

Nvm'yi yola kontrol edin

$ source ~ / .profile
$ nvm ls-remote

listelemeyle ilgili hata alırsanız git'i yükleyin.

$ sudo apt-get install git git

Yeniden çalıştır:

$ nvm ls-remote
VEYA
$ sudo nvm ls-uzak

$ nvm kurulum sürümü ihtiyacınız 

Sürümü Kontrol Etme

# düğüm - sürüm
nvm istediğiniz sürümü kullanın

BİLGİ KURSU:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps


1

Bir sembolik bağlantı oluşturmuştum, ama yine de işe yaramıyordu.

Terminalimi yeniden başlatmayı unuttum (macun bağlantım). Symlink olmadan çalıştıktan sonra :)


1

Mutlak yeni başlayanlar için yardımcı olacaktır

Her ne kadar cevabınız olsa da, nodekomutun (herhangi bir parametre olmadan) ham javascript kodunu çalıştırmak için REPL okuma-eval-print-loop modunda düğümü başlatacağını belirtmek istedim .

nodeKomutu kullanmanın başka bir yolu, jsparametre olarak bir dosya sağlamaktır . En çok bu şekilde kullanıyoruz.


0

Varolan düğümü ve düğümleri kaldırmak isteğe bağlıdır, ancak alternatif olarak en son 7.x düğümlerini yüklemeniz gerekir.

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

0

Sadece NVM (Düğüm Sürümü Yöneticisi) kullanın - https://github.com/creationix/nvm

Node.js'yi yönetmek için standart haline gelmiştir.

Yeni bir sürüme ihtiyacınız olduğunda:

nvm install NEW_VER
nvm use XXX

Bir şeyler ters giderse, her zaman geri dönebilirsiniz

nvm use OLD_VER


0

https://nodejs.org/en/download/

Download .pkg file on your mac and install it. it directly works.

  ~ which node
/usr/local/bin/node
  ~ node --version
v10.11.0
  ~ which npm
/usr/local/bin/npm
  ~ npm --version
6.4.1
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.