node: команда не знайдена


46

Я не розумію, чому nodeкоманда не буде працювати, тоді як nodejsпрацює:

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

Я спробував apt-get install nodejs, але остання версія вже встановлена.

І ще:

$ npm
zsh: command not found: npm

Я думав, що npmвключений до NodeJS> 0,10?


Чи може ця публікація вирішити вашу проблему [Stackoverflow] [1] [1]: stackoverflow.com/questions/13593902/node-command-not-found
Ахмед Аль-battashi

@ AhmedAl-battashi Це не допомагає, я вже це прочитав. NodeJS встановлений, nodejsзнаходиться в PATH, але nodeі npmне доступні, я не можу знайти їх в будь-якому місці в моїй системі.
Матьє Наполі

2
Я не зовсім впевнений, але пам'ятаю, що причиною nodeперейменування бінарних файлів було те, що він конфліктував з одним із названих пакетів node(Amateur Packet Radio Node Program).
yjwong

Ви впевнені, що шукаєте, nodeа ні nodejs? node- це не те, що ти думаєш.
Брайам

@Braiam nodeвикористовується в кожному навчальному посібнику, який я бачив
Матьє Наполі

Відповіді:


43

nodeПакет НЕ має ніякого відношення до NodeJS. Дивіться тут інформацію про вузолВстановити вузол :

Аматорська програма Packet Radio Node (перехідний пакет)


Натомість слід встановити nodejs Встановити nodejsпакет.

sudo apt-get install nodejs

потім використовуйте його з nodejsкомандою.

Причина nodeне працює, ймовірно, через конфлікти з оригінальним nodeпакунком, зв'язаним вище.


Якщо ви хочете npm Встановити npm, вам також доведеться встановити це.

sudo apt-get install npm

3
Я знав про nodeпакет, проте не бачу, чому пакет імен чинить вплив на інструмент командного рядка. Наприклад, я не встановлюю php, але php5-cli. Але дякую за відповідь, я був не впевнений, що встановлення вручну npmбуде проблемою, мабуть, це не так.
Матьє Наполі

2
Встановлення nodejs-legacyпакета дозволяє використовувати або nodeабо nodejs.
grooveplex

48

Я погоджуюся, це трохи проблема, але я не знаю, чому це відбувається.

Виправлення

Спочатку спочатку, просто створіть символічне посилання від виклику, що nodeвказує на nodejsбінарне.

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

Проблема

Встановлено, що я знайшов декілька посібників для встановлення Nodejs ( тут і тут ), які мають подібний код, щоб перевірити, чи правильно відбулася установка. Отже, по суті створіть простий сервер на зразок:

// 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/');

а потім запустіть його у nodejs із наступним:

node hello_node.js

І тоді, коли я намагався використовувати npm, щоб щось встановити, це не вдалося і повідомити про те саме node not foundповідомлення.


У мене така ж проблема: sudo apt-get install npm, а потім після рекомендації @jlouzado завершити роботу. Зараз добре працює
user615274

5
Смішна порада: існує пакет nodejs-legacy, який забезпечує символьне посилання, нібито для сумісності з "застарілим кодом", який все ще покладається на нього.
Сімон

1
@ Simón Я думаю, що це краще рішення, ніж створення символічного посилання.
grooveplex

Тож зараз я рахую 3 пакети, які мені потрібно встановити, якщо я в основному щось роблю з Node.js. Я намагався встановити цю бібліотеку Node.js протягом години.
судо

Не вдалося встановити, asciicast2gifоскільки під час встановлення він працює, node install.jsі я отримую помилку sh: 1: node: not found. Це виправляє.
Виняк

26

Як @ minerz029 вже говорив про конфлікт із nodeпакетом. Але якщо вам все-таки потрібна nodeкоманда (оскільки сценарій використовує лише nodeнаприклад), правильний спосіб - встановити nodejs-legacyпакет:

apt-get install nodejs-legacy

і не створювати символьне посилання самостійно (особливо не в /usr/bin/). Це забезпечить nodeкоманду для nodejs.


2
Це працює. Я думаю, що це краще, ніж відповідь @ jlouzado.
Шон Сі

якщо ви часто не починаєте з нуля при встановленні ОС .... МНОГО краще, щоб доречно керувати символьними посиланнями у скриньці. Дякую!
Майк

2

Спробуйте це

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

sudo apt-get install -y nodejs

:)


2
Чому ви не встановлюєте останню версію ?:curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
karel

setup_6.x стабільний
MUHASIN BABU

Політика LTS для версії 8 Node.js полягає в тому, що LTS зараз очікує на початок, вона починає бути LTS через кілька місяців у жовтні 2017 року, починається період технічного обслуговування у квітні 2019 року та закінчується технічне обслуговування у грудні 2019 року. Для отримання додаткової інформації дивіться таблицю у цій відповіді: askubuntu.com/questions/626383/…
karel

1

можливо вам знадобиться встановити вручну

sudo apt-get install npm

1
Я скрізь читав, що не повинен встановлювати npm вручну, тому що він був включений в v0.10: / Я трохи загублений
Матьє Наполі

0

Швидке виправлення для nvmкористувачів. Я використовую nvm(вузол версію менеджера) і для мене , щоб використовувати npmкоманду я завжди повинен видавати перед тим npmцією командою nvm use 0.x(замініть 0.xз 0.11або 0.10, наприклад, версію , яку ви хочете використовувати).


0

Як вже було зазначено minerz029 , деякі версії nodejsпакету не надають nodeдвійкові файли через інший пакет, який раніше використовував це ім'я. Рішення настільки ж просто, як слідувати крокам установки на власному веб-сайті Node:

Встановлення Node.js через менеджер пакунків | Дистрибутиви Linux на базі Debian та Ubuntu

Наразі ці кроки:

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

Але найкраще перевірити джерело посилання, щоб переконатися, що ви використовуєте останню версію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.