โหนดตลอดไป / usr / bin / env: node: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว


108

ฉันได้ติดตั้ง nodejs โดยใช้:

apt-get install nodejs

จากนั้นฉันได้ติดตั้ง npm โดยใช้:

apt-get install npm

จากนั้นฉันได้ติดตั้งตลอดไปโดยใช้:

npm install forever -g

ตอนนี้ฉันไปที่โครงการของฉัน /var/www/myproject

และพยายามเรียกใช้ forever start server.js

จากนั้นฉันได้รับข้อความต่อไปนี้:

/usr/bin/env: node: No such file or directory

ใครช่วยบอกทีว่าเกิดอะไรขึ้น?



1
ฉันได้รับข้อบกพร่องนี้และฉันกำลังใช้ Node Version Manager
munchschair

คำตอบ:


270

แก้ไข: ณ เดือนธันวาคม 2018 นี่ไม่ใช่วิธีที่ถูกต้องอีกต่อไป ดูอีกสองคำตอบ

คุณต้องเชื่อมต่อโหนดที่ปฏิบัติการได้กับโหนดsudo ln -s "$(which nodejs)" /usr/local/bin/nodeเหตุผลก็คือเมื่อคุณทำ "apt-get install node" มันจะติดตั้งแพ็คเกจที่ไม่เกี่ยวข้องดังนั้นพวกเขาจึงต้องเลือกชื่ออื่นเพื่อที่จะไม่ขัดแย้งกัน


4
$ (ซึ่ง nodejs) คืออะไร "คือรหัสที่คุณวางสิ่งที่ฉันควรจะคัดลอกวางหรือ?
Marc Rasmussen

11
"$ (ซึ่ง nodejs)" รับพา ธ ของ nodejs ที่ปฏิบัติการได้ เมื่อคุณใส่บางสิ่งเข้าไปใน "$ ()" มันจะถูกเรียกใช้งานจากนั้นแทรกลงในคำสั่งที่มี
chedabob

2
@chedabob ฉันประสบปัญหาเดียวกัน แต่ฉันยังไม่ได้แก้ไขเมื่อฉันเรียกใช้คำสั่งของคุณในเวลานั้นฉันได้รับ ln: ล้มเหลวในการสร้างลิงก์สัญลักษณ์ '/ usr / bin / node': มีไฟล์อยู่
DASADIYA CHAITANYA

@ dasadiya-chaitanya ในกรณีนี้ตรวจสอบให้แน่ใจว่าไฟล์ที่มีอยู่ชี้ไปยังโหนดที่ถูกต้องที่เรียกใช้งานได้โดยเรียกใช้สิ่งต่อไปนี้ ls -lart / usr / bin / โหนด หากลิงก์สัญลักษณ์ไม่ได้ชี้ไปที่ไบนารีที่ถูกต้องในกรณีนั้นให้ลบออก และเรียกใช้สิ่งต่อไปนี้ใหม่: sudo ln -s "$ (ซึ่ง nodejs)" / usr / bin / node
brownmamba

4
บน Debian และ Ubuntu มีแพ็คเกจที่nodejs-legacyให้ลิงค์สัญลักษณ์ คุณไม่ควรทำด้วยตนเอง apt-get install nodejs-legacyเป็นวิธีที่ถูกต้องในการแก้ไขปัญหาดูคำตอบของฉันด้านล่าง
Clément Schreiner

45

แม้ว่าคำตอบที่ยอมรับจะแก้ไขปัญหาได้ แต่วิธีที่ถูกต้องในการทำเช่นนั้นอย่างน้อยก็ด้วย Debian Jessie และไปข้างหน้าและ Ubuntu 14.4 และส่งต่อ1คือการติดตั้งnodejs-legacy :

apt-get install nodejs-legacy

เหตุผลก็คือ Debian มีแพ็กเกจ (โหนด) ที่ให้/ usr / bin / node อยู่แล้วและต้องติดตั้งไบนารีโหนด nodejs ใน / usr / bin / nodejs

nodejs-มรดกแพคเกจให้การเชื่อมโยงสัญลักษณ์จาก / usr / bin / nodejs ไป / usr / bin / โหนด (และความขัดแย้งกับโหนดแพคเกจ)

ที่มา: [CTTE # 614907] การแก้ไขความขัดแย้งของโหนด / โหนด jsและข้อบกพร่อง Debian # 614907: โหนด: ชื่อขัดแย้งกับตัวแปล node.js


นี่เป็นวิธีที่ถูกต้องใน Debian / Ubuntu +1 ซึ่งเป็นบริบทที่ดีสำหรับผู้ที่ไม่คุ้นเคยกับระบบปฏิบัติการ
Ligemer

18

จะดีกว่าถ้าคุณอัปเดตเป็นเวอร์ชันโหนดล่าสุด

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