โหนด: ไม่พบคำสั่ง


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
Ahmed Al-battashi

@ AhmedAl-battashi มันไม่ช่วยฉันได้อ่านไปแล้ว ติดตั้ง NodeJS อยู่nodejsใน PATH แต่nodeและnpmไม่พร้อมใช้งานฉันไม่พบที่ใดก็ได้ในระบบของฉัน
Matthieu Napoli

2
ฉันไม่แน่ใจทั้งหมด แต่ฉันจำได้ว่าสาเหตุที่nodeไบนารีถูกเปลี่ยนชื่อนั้นเป็นเพราะมันขัดแย้งกับหนึ่งในแพ็คเกจที่เรียกว่าnode(Amateur Packet Radio Node Program)
yjwong

คุณแน่ใจหรือว่ากำลังมองหาnodeและไม่nodejs? nodeไม่ใช่สิ่งที่คุณคิดว่าเป็น
Braiam

@Braiam nodeใช้ในการสอนทุกครั้งที่ฉันเห็น
Matthieu Napoli

คำตอบ:


43

nodeแพคเกจไม่เกี่ยวข้องกับ NodeJS ดูที่นี่สำหรับข้อมูลเกี่ยวกับโหนดติดตั้งโหนด :

โปรแกรมโหนดแพ็กเก็ตวิทยุสมัครเล่น


คุณควรติดตั้งnodejs ติดตั้ง nodejsแพ็คเกจแทน

sudo apt-get install nodejs

จากนั้นใช้กับnodejsคำสั่ง

เหตุผลที่nodeใช้งานไม่ได้อาจเป็นเพราะความขัดแย้งกับnodeแพคเกจเดิมที่เชื่อมโยงด้านบน


หากคุณต้องการnpm ติดตั้ง npmคุณจะต้องติดตั้งเช่นกัน

sudo apt-get install npm

3
ฉันรู้เกี่ยวกับnodeแพ็คเกจ แต่ฉันไม่เห็นว่าทำไมแพ็คเกจชื่อจึงมีผลกับเครื่องมือบรรทัดคำสั่ง ตัวอย่างเช่นผมไม่ได้ติดตั้งแต่php php5-cliแต่ขอบคุณสำหรับคำตอบฉันไม่แน่ใจว่าการติดตั้งด้วยตนเองnpmจะเป็นปัญหาหรือไม่
Matthieu Napoli

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ที่จัดเตรียม symlink โดยอ้างว่าเข้ากันได้กับ "รหัสดั้งเดิม" ที่ยังคงใช้งานอยู่
Simón

1
@ Simónฉันคิดว่ามันเป็นทางออกที่ดีกว่าการสร้างลิงค์สัญลักษณ์
grooveplex

ดังนั้นตอนนี้ฉันนับ 3 แพ็คเกจที่ฉันต้องติดตั้งถ้าฉันทำอะไรกับ Node.js ฉันพยายามที่จะติดตั้งไลบรารี่ Node.js นี้มาหนึ่งชั่วโมงแล้ว
sudo

ผมก็ไม่สามารถติดตั้งasciicast2gifเพราะระหว่างการติดตั้งมันจะทำงานและฉันได้รับข้อผิดพลาดnode install.js sh: 1: node: not foundสิ่งนี้จะแก้ไขได้
Vinayak

26

Like @ minerz029 กล่าวแล้วมีข้อขัดแย้งกับnodeแพคเกจ แต่ถ้าคุณยังต้องการnodeคำสั่ง (เนื่องจากสคริปต์ใช้nodeเป็นตัวอย่างเท่านั้น) วิธีที่ถูกต้องคือการติดตั้งnodejs-legacyแพคเกจ:

apt-get install nodejs-legacy

และไม่สร้าง symlink ด้วยตัวคุณเอง (โดยเฉพาะอย่างยิ่งไม่ได้อยู่ใน/usr/bin/) สิ่งนี้จะจัดเตรียมnodeคำสั่งสำหรับ nodejs


2
มันได้ผล. ฉันคิดว่านี่ดีกว่าคำตอบของ @ jlouzado
Shawn Xie

เว้นแต่คุณจะ "เริ่มตั้งแต่ต้น" บ่อยครั้งด้วยการติดตั้งระบบปฏิบัติการของคุณ.... ดีกว่าเพื่อให้สามารถจัดการ symlink ใน bin ได้ ขอบคุณ!
ไมค์

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 สำหรับ Node.js เวอร์ชัน 8 คือตอนนี้อยู่ระหว่างการรอ LTS มันเริ่มเป็น LTS ในไม่กี่เดือนในเดือนตุลาคม 2017 มันเริ่มการบำรุงรักษาในเดือนเมษายน 2019 และสิ้นสุดการบำรุงรักษาในเดือนธันวาคม 2019 สำหรับข้อมูลเพิ่มเติม ดูตารางในคำตอบนี้: askubuntu.com/questions/626383/ …
karel

1

คุณอาจจำเป็นต้องติดตั้งด้วยตนเอง

sudo apt-get install npm

1
ฉันอ่านทุกที่ที่ฉันไม่ควรติดตั้ง npm ด้วยตนเองเพราะมันรวมอยู่ใน> v0.10: / ฉันหลงทางนิดหน่อย
Matthieu Napoli

0

การแก้ไขอย่างรวดเร็วสำหรับnvmผู้ใช้ ฉันใช้nvm(ตัวจัดการเวอร์ชันโหนด) และให้ฉันใช้npmคำสั่งที่ฉันต้องออกก่อนnpmคำสั่งนี้nvm use 0.x(แทนที่0.xด้วย0.11หรือ0.10ตัวอย่างเช่นเวอร์ชันที่คุณต้องการใช้)


0

เนื่องจาก minerz029 ได้กล่าวถึงแล้วnodejsแพคเกจบางเวอร์ชันจะไม่ให้nodeไบนารีเนื่องจากแพคเกจอื่นก่อนหน้านี้ใช้ชื่อนั้น การแก้ปัญหานั้นง่ายเหมือนการทำตามขั้นตอนการติดตั้งบนเว็บไซต์ของโหนดเอง:

การติดตั้ง Node.js ผ่านตัวจัดการแพคเกจ ลีนุกซ์ที่ใช้เดเบียนและ Ubuntu

ในขณะนี้ขั้นตอนเหล่านี้คือ:

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

แต่จะเป็นการดีที่สุดที่จะตรวจสอบลิงก์ต้นทางเพื่อให้แน่ใจว่าคุณใช้งานเวอร์ชันล่าสุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.