nút: lệnh không tìm thấy


46

Tôi không hiểu tại sao nodelệnh sẽ không hoạt động, trong khi nodejshoạt động:

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

Tôi đã thử apt-get install nodejs, nhưng phiên bản mới nhất đã được cài đặt.

Và hơn thế nữa:

$ npm
zsh: command not found: npm

Tôi nghĩ npmđã được bao gồm trong NodeJS> 0.10?


bài này có thể giải quyết vấn đề của bạn [Stackoverflow] [1] [1]: stackoverflow.com/questions/13593902/node-command-not-found
Ahmed Al-battashi

@ AhmedAl-battashi Nó không giúp được gì, tôi đã đọc nó rồi. NodeJS được cài đặt, nodejslà trong PATH, nhưng nodenpmkhông có sẵn, tôi không thể tìm thấy chúng ở bất cứ đâu trên hệ thống của tôi.
Matthieu Napoli

2
Tôi không hoàn toàn chắc chắn, nhưng tôi nhớ lại rằng lý do tại sao nodenhị phân được đổi tên là vì nó mâu thuẫn với một trong các gói được gọi là node(Chương trình nút radio vô tuyến gói nghiệp dư).
yjwong

Bạn có chắc chắn rằng bạn đang tìm kiếm nodevà không nodejs? nodekhông phải là những gì bạn nghĩ rằng nó là.
Braiam

@Braiam nodeđược sử dụng trong mọi hướng dẫn tôi đã xem
Matthieu Napoli

Câu trả lời:


43

Các nodegói không liên quan đến NodeJS. Xem ở đây để biết thông tin về nútCài đặt nút :

Chương trình Node Radio Amet Pack (gói chuyển tiếp)


Thay vào đó bạn nên cài đặt nodejs Cài đặt nodejsgói.

sudo apt-get install nodejs

sau đó sử dụng nó với nodejslệnh.

Lý do nodekhông hoạt động có thể là do xung đột với nodegói ban đầu được liên kết ở trên.


Nếu bạn muốn npm Cài đặt npm, bạn cũng sẽ phải cài đặt nó.

sudo apt-get install npm

3
Tôi biết về nodegói, tuy nhiên tôi không hiểu tại sao gói tên có bất kỳ ảnh hưởng nào đến công cụ dòng lệnh. Ví dụ, tôi không cài đặt php, nhưng php5-cli. Nhưng cảm ơn vì câu trả lời, tôi không chắc nếu cài đặt thủ công npmsẽ là một vấn đề, rõ ràng là không.
Matthieu Napoli

2
Cài đặt nodejs-legacygói cho phép bạn sử dụng nodehoặc nodejs.
grooveplex

48

Tôi đồng ý, đây là một vấn đề nhưng tôi không biết tại sao nó lại xảy ra.

Sửa chữa

Trước tiên, chỉ cần tạo một liên kết tượng trưng từ được gọi là nodetrỏ đến nodejsnhị phân.

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

Vấn đề

Khá nhiều hướng dẫn tôi tìm thấy để cài đặt Nodejs ( ở đâyở đây ) đều có mã tương tự để kiểm tra xem việc cài đặt có xảy ra chính xác không. Vì vậy, về cơ bản tạo ra một máy chủ đơn giản như vậy:

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

và sau đó chạy nó trong nodejs với các mục sau:

node hello_node.js

Và sau đó khi tôi đang cố gắng sử dụng npm để cài đặt một cái gì đó, nó đã thất bại và báo cáo cùng một node not foundthông báo.


Tôi có cùng một vấn đề, sudo apt-get install npm và sau đó làm theo đề xuất @jlouzado hoàn thành công việc. Hiện đang hoạt động tốt
user615274

5
Mẹo vui: có một gói nodejs-legacy cung cấp liên kết tượng trưng, ​​có mục đích tương thích với "mã kế thừa" vẫn dựa vào nó.
Simón

1
@ Simón Tôi nghĩ rằng đó là một giải pháp tốt hơn là tạo một liên kết tượng trưng.
grooveplex

Vì vậy, bây giờ tôi đang đếm 3 gói tôi phải cài đặt nếu về cơ bản tôi đang làm bất cứ điều gì với Node.js. Tôi đã cố gắng cài đặt thư viện Node.js này trong khoảng một giờ.
sudo

Tôi không thể cài đặt asciicast2gifvì trong quá trình cài đặt, nó chạy node install.jsvà tôi gặp lỗi sh: 1: node: not found. Điều này sửa nó.
Vinayak

26

Giống như @ minerz029 đã nói rằng có một xung đột với nodegói. Nhưng nếu bạn vẫn cần nodelệnh (vì tập lệnh chỉ sử dụng nodechẳng hạn), cách chính xác là cài đặt nodejs-legacygói:

apt-get install nodejs-legacy

và không tự tạo một liên kết tượng trưng (đặc biệt là không phải trong /usr/bin/). Điều này sẽ cung cấp một nodelệnh cho nodejs.


2
Nó hoạt động. Tôi nghĩ rằng điều này tốt hơn câu trả lời của @ jlouzado.
Shawn Xie

trừ khi bạn thường xuyên "bắt đầu từ đầu" với cài đặt hệ điều hành của mình .... RẤT NHIỀU để cho phép apt quản lý các liên kết tượng trưng trong thùng. Cảm ơn!
mike

2

Thử đi

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

sudo apt-get install -y nodejs

:)


2
Tại sao bạn không cài đặt phiên bản mới nhất?:curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
karel

setup_6.x ổn định
MUHASIN BABU

Chính sách LTS cho Node.js phiên bản 8 là hiện đang chờ LTS, nó bắt đầu là LTS trong một vài tháng vào tháng 10 năm 2017, nó bắt đầu thời gian bảo trì vào tháng 4 năm 2019 và kết thúc bảo trì vào tháng 12 năm 2019. Để biết thêm thông tin xem bảng trong câu trả lời này: Askubfox.com/questions/626383/ từ
karel

1

bạn có thể cần phải cài đặt bằng tay

sudo apt-get install npm

1
Tôi đọc ở mọi nơi rằng tôi không nên cài đặt npm thủ công vì nó được bao gồm trong> v0.10: / Tôi hơi lạc lõng
Matthieu Napoli

0

Một sửa chữa nhanh chóng cho nvmngười dùng. Tôi sử dụng nvm(trình quản lý phiên bản nút) và đối với tôi để sử dụng npmlệnh tôi phải luôn luôn phát hành trước npmlệnh này nvm use 0.x(thay thế 0.xbằng 0.11hoặc 0.10ví dụ, phiên bản bạn muốn sử dụng).


0

Như minerz029 đã đề cập , một số phiên bản nhất định của nodejsgói sẽ không cung cấp nodenhị phân do một gói khác trước đó sử dụng tên đó. Giải pháp đơn giản như sau các bước cài đặt trên trang web riêng của Node:

Cài đặt Node.js thông qua trình quản lý gói | Các bản phân phối Linux dựa trên Debian và Ubuntu

Hiện tại, các bước đó là:

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

Nhưng tốt nhất là kiểm tra liên kết nguồn để đảm bảo bạn đang sử dụng phiên bản mới nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.