węzeł: nie znaleziono polecenia

46

Nie rozumiem, dlaczego nodepolecenie nie działa, a nodejsdziała:

$ node --version
zsh: command not found: node
$ nodejs --version
v0.10.15

Próbowałem apt-get install nodejs, ale najnowsza wersja jest już zainstalowana.

A ponadto:

$ npm
zsh: command not found: npm

Myślałem, że npmzostał uwzględniony w NodeJS> 0.10?

Matthieu Napoli
źródło
może ten post rozwiązał Twój problem [Stackoverflow] [1] [1]: stackoverflow.com/questions/13593902/node-command-not-found
Ahmed Al-battashi 13.01.14
@ AhmedAl-battashi To nie pomaga, już to przeczytałem. NodeJS jest zainstalowane, nodejsznajduje się na ścieżce, ale nodei npmnie są dostępne, nie mogę ich nigdzie znaleźć w moim systemie.
Matthieu Napoli
2
Nie jestem do końca pewien, ale pamiętam, że przyczyną zmiany nazwy nodepliku binarnego był konflikt z jednym z pakietów o nazwie node(Program węzłów radia amatorskiego pakietu).
yjwong
Jesteś pewien, że szukasz, nodea nie nodejs? nodenie jest tym, co myślisz.
Braiam
@Braiam nodejest używany w każdym tutorialu, który widziałem
Matthieu Napoli

Odpowiedzi:

43

nodePakiet ma związku NodeJS. Zobacz tutaj informacje o węźleZainstaluj węzeł :

Program amatorskiego pakietu Radio Node (pakiet przejściowy)


Zamiast tego powinieneś zainstalować nodejs Zainstaluj nodejspakiet.

sudo apt-get install nodejs

następnie użyj go z nodejspoleceniem.

Przyczyna nodenie działa prawdopodobnie z powodu konfliktu z oryginalnym nodepakietem podanym powyżej.


Jeśli chcesz npm Zainstaluj npm, musisz to również zainstalować.

sudo apt-get install npm
kiri
źródło
3
Wiedziałem o nodepakiecie, ale nie rozumiem, dlaczego pakiet nazw ma jakikolwiek wpływ na narzędzie wiersza poleceń. Na przykład nie instaluję php, ale php5-cli. Ale dzięki za odpowiedź, nie byłem pewien, czy ręczna instalacja npmbyłaby problemem, najwyraźniej tak nie jest.
Matthieu Napoli
2
Instalacja nodejs-legacypakietu pozwala używać albo nodealbo nodejs.
grooveplex
48

Zgadzam się, to trochę problem, ale nie wiem, dlaczego tak się dzieje.

Poprawka

Po pierwsze, po prostu utwórz dowiązanie symboliczne z wywołanego nodewskazującego na nodejsplik binarny.

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

Problem

Znalazłem całkiem sporo przewodników dotyczących instalowania Nodejs ( tu i tutaj ), aby sprawdzić, czy instalacja przebiegła poprawnie. Zasadniczo stwórz prosty serwer taki:

// hello_node.js
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

a następnie uruchom go w nodejs, wykonując następujące czynności:

node hello_node.js

A potem, gdy próbowałem użyć npm do zainstalowania czegoś, nie udało się i zgłosił ten sam node not foundkomunikat.

Jlouzado
źródło
Mam ten sam problem, sudo apt-get install npm, a następnie postępując zgodnie z zaleceniami @jlouzado, dokończ zadanie. Teraz działa dobrze
użytkownik615274,
5
Zabawna wskazówka: istnieje pakiet nodejs-legacy , który zapewnia dowiązanie symboliczne, rzekomo w celu zapewnienia zgodności z „starszym kodem”, który wciąż na nim polega.
Simón
1
@ Simón Myślę, że to lepsze rozwiązanie niż tworzenie dowiązania symbolicznego.
grooveplex
Więc teraz liczę 3 pakiety, które muszę zainstalować, jeśli robię właściwie wszystko z Node.js. Próbowałem zainstalować tę bibliotekę Node.js od około godziny.
sudo
Nie udało się zainstalować, asciicast2gifponieważ podczas instalacji działa node install.jsi pojawia się błąd sh: 1: node: not found. To naprawia to.
Vinayak,
26

Jak już powiedział @ minerz029, istnieje konflikt z nodepakietem. Ale jeśli nadal potrzebujesz nodepolecenia (ponieważ skrypt używa tylko nodena przykład), poprawnym sposobem jest zainstalowanie nodejs-legacypakietu:

apt-get install nodejs-legacy

i nie należy tworzyć własnego dowiązania symbolicznego (zwłaszcza nie w /usr/bin/). Zapewni to nodepolecenie dla nodejs.

F.Raab
źródło
2
To działa. Myślę, że to lepsze niż odpowiedź @ jlouzado.
Shawn Xie
chyba że często „zaczynasz od zera” podczas instalacji systemu operacyjnego .... O DUŻO lepiej pozwolić apt zarządzać dowiązaniami symbolicznymi w bin. Dzięki!
Mike
2

Spróbuj tego

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get install -y nodejs

:)

MUHASIN BABU
źródło
2
Dlaczego nie instalujesz najnowszej wersji ?:curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Karel
setup_6.x jest stabilny
MUHASIN BABU
Polityka LTS dla Node.js w wersji 8 mówi, że oczekuje na LTS teraz, zaczyna być LTS za kilka miesięcy w październiku 2017 r., Rozpoczyna okres konserwacji w kwietniu 2019 r., A kończy konserwację w grudniu 2019 r. Więcej informacji patrz tabela w tej odpowiedzi: askubuntu.com/questions/626383/…
karel
1

może trzeba zainstalować ręcznie

sudo apt-get install npm
Ahmed Al-battashi
źródło
1
Wszędzie czytam, że nie powinienem instalować npm ręcznie, ponieważ był zawarty w> v0.10: / Jestem trochę zagubiony
Matthieu Napoli
0

Szybka poprawka dla nvmużytkowników. Używam nvm(węzeł menedżera wersja) i dla mnie, aby użyć npmpolecenia muszę zawsze problem przed npmtego polecenia nvm use 0.x(zamień 0.xz 0.11lub 0.10na przykład wersję chcesz używać).

Karl Morrison
źródło
0

Jak już wspomniałem minerz029 , niektóre wersje nodejspakietu nie dostarczą plikunode binarnego, ponieważ inny pakiet poprzednio używał tej nazwy. Rozwiązanie jest tak proste, jak wykonanie kroków instalacji na własnej stronie internetowej Node:

Instalowanie Node.js za pomocą menedżera pakietów | Dystrybucje Linuksa oparte na Debianie i Ubuntu

W tej chwili te kroki to:

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

Ale najlepiej sprawdzić link źródłowy, aby upewnić się, że używasz najnowszej wersji.

bmaupin
źródło