ไม่สามารถติดตั้ง NodeJs: / usr / bin / env: node: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว


302

ฉันพยายามติดตั้ง nodeJs ใน Ubuntu 14.04 ของฉันเพื่อใช้ GruntJs

ฉันได้อ่านเกี่ยวกับUbuntu วิธีการต่าง ๆ ในการทำ ( ปัญหา? ) ดังนั้นนี่คือสิ่งที่ฉันทำเพื่อติดตั้ง:

sudo apt-get install npm

sudo npm install -g grunt-cli

พิมพ์ grunt หลังจากนั้นฉันได้รับข้อผิดพลาด:

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

ดังนั้นฉันได้ลอง:

curl -sL https://deb.nodesource.com/setup | sudo bash -

sudo apt-get install -y nodejs

sudo apt-get update

และลองอีกครั้งและยังคงได้รับข้อผิดพลาดฉันได้ลอง:

sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

sudo apt-get install -y nodejs

ฉันได้รับข้อความนี้:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

ฉันได้ลองล้างในกรณี:

sudo apt-get autoremove

แต่ไม่ข้อผิดพลาดยังคงอยู่: เมื่อฉันพิมพ์ grunt ฉันยังได้รับ /usr/bin/env: node: No such file or directory

ฉันควรทำอย่างไรดี?

คำตอบ:


793

การดำเนินการ symlink แก้ปัญหา:

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

(ขอบคุณและ +1 คะแนนของฉันเพื่อตอบ bodokaiser )


97
sudo apt-get install nodejs-legacyสร้างลิงค์นี้ด้วยดูคำอธิบายได้ที่packages.debian.org/sid/nodejs-legacy
Anatoly techtonik

1
symlink แก้ปัญหาและประหยัดเวลาในการพัฒนาจำนวนมาก ขอบคุณ!
Farzad YZ

การแก้ไขนี้เป็นผู้ช่วยชีวิตอย่างจริงจัง โดยเฉพาะอย่างยิ่งถ้าคุณทำตามคำแนะนำการแก้ไขสิทธิ์ที่นี่docs.npmjs.com/getting-started/fixing-npm-permissions
Josh Frankel

ขอบคุณ! สิ่งนี้ช่วยฉันในตอนบ่ายพยายามตั้งค่าแอปโหนดบน Google Cloud Linux
jovan

1
คุณควรใช้which nodeเพื่อให้คุณได้รับเส้นทางที่ถูกต้องไปยังโหนดของคุณ ดังนั้นคำสั่งจะเป็นln -s "$(which node)" /usr/bin/node
technogeek1995

117

ปัญหาไม่ได้อยู่กับรุ่นของโหนด แต่เป็นวิธีที่ติดตั้ง NodeJS ตามค่าเริ่มต้นใน Ubuntu เมื่อใช้แอปพลิเคชั่น Node ใน Ubuntu คุณต้องเรียกใช้nodejs somethign.jsแทนnode something.js

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

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

6
คุณจะต้องเรียกใช้คำสั่งนี้ด้วย sudo หากคุณได้รับ "ln: ล้มเหลวในการสร้างลิงก์สัญลักษณ์ '/ usr / bin / node'" ข้อผิดพลาด
Suraj Dubey

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

54

ฉันคิดว่าคุณควรอัพเกรดโหนดรุ่นล่าสุด

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

1
เพียงแค่ปลาย; เยื้องบรรทัดของรหัสโดย 4 ช่องว่าง;) ยังnไม่ใช่คำสั่งที่เชื่อมโยงกับ Node.JS
Qix - MONICA ถูกยกเลิกเมื่อ

@ David ตามคำอธิบายแพ็กเกจเกี่ยวกับNPM : "จัดการโหนดของคุณทั้งหมดแบบโต้ตอบ"
frdmn

แก้ไขปัญหาให้ฉัน
criticerz

ฉันคัดลอกlaravelโครงการจากwindowsเครื่องไปยังubuntu 16.04และlaravel mixมีปัญหากับnpm run watchและวิธีนี้ใช้ได้สำหรับฉันและตอนนี้ปัญหาก็หายไป

29

หากคุณสามารถเข้าถึงโหนดบนเทอร์มินัลอูบุนตูโดยใช้คำสั่ง nodejs แล้วปัญหานี้สามารถแก้ไขได้โดยใช้ -creating ลิงค์สัญลักษณ์ของ nodejs และโหนดโดยใช้

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

และสิ่งนี้อาจแก้ปัญหาได้




9

ฉันพบว่านี่มักจะเป็นข้อผิดพลาดที่ผิดพลาดหากคุณติดตั้งจากผู้จัดการแพ็คเกจคุณ bin อาจถูกเรียกว่า nodejs ดังนั้นคุณเพียงแค่ต้องเชื่อมโยงมันอย่างนั้น

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

1
แทนที่จะเพิ่มข้อเสนอแนะเชิงลบแจ้งให้เราทราบที่นี่ในความคิดเห็นว่ามีอะไรผิดปกติดังนั้นฉันสามารถช่วยคุณได้ เนื่องจากไม่มีอะไรผิดปกติในการสร้าง symlink โดยเฉพาะถ้ามันช่วยให้คุณจัดการสิ่งต่าง ๆ ได้ดีขึ้น
Ahmad Awais

1
สำหรับตัวฉันเองชอบแนวทางนี้ มันสะอาด
มูฮัมหมัด Gelbana

8

หากคุณติดตั้ง nodejs อยู่แล้ว (ตรวจสอบด้วยwhich nodejs) และไม่ต้องการติดตั้งแพ็กเกจอื่นคุณสามารถทำได้ในฐานะรูท:

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99

นี่คือวิธีการเดเบียนที่เหมาะสม
Tonin

6

เมื่อฉันใช้อึกฉันได้รับข้อผิดพลาดนี้

~$ gulp

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

สิ่งนี้ถูกลบโดยการดำเนินการคำสั่งต่อไปนี้คุณต้องจำไว้ว่าไดเรกทอรี / usr / bin มีสิทธิ์ทั้งหมด

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

มันใช้งานได้สำหรับฉัน ..


5

ขึ้นอยู่กับวิธีที่คุณติดตั้งโหนดเวลาส่วนใหญ่อาจไม่อยู่ใน / usr / bin / ในกรณีของฉันเองฉันใช้ nvm เพื่อติดตั้งดังนั้นโหนดของฉันจึงอยู่ใน. / nvm/versions

ใช้คำสั่งนี้which nodeฉันพบเส้นทาง แต่เพื่อให้งานง่ายขึ้นคุณสามารถเรียกใช้คำสั่งนี้

nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node

คำสั่งดังกล่าวจะได้รับตำแหน่งของโหนดของคุณและสร้างลิงค์สำหรับคุณ


5

มีสองวิธีในการแก้ไขปัญหานี้:

a) ตั้งค่าตัวแปร PATH ของคุณเพื่อรวม "/ usr / local / bin"

export PATH="$PATH:/usr/local/bin"

b) สร้าง symlink ไปที่ "/ usr / bin" ซึ่งอยู่ใน PATH ของคุณอยู่แล้ว

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

ฉันหวังว่ามันจะช่วย


4

ในขณะที่ln -sการแก้ไขที่ง่ายที่สุดชัดเจนก็เป็นคำอธิบาย:

เนื่องจากข้อขัดแย้งกับแพคเกจอื่นการปฏิบัติการจากที่เก็บ Ubuntu จึงเรียกว่า nodejs แทน node พึงระลึกไว้เสมอว่าคุณกำลังใช้งานซอฟต์แวร์

sudo apt-get install nodejsคำแนะนำนี้ขึ้นมาเมื่อติดตั้ง

ดังนั้นเครื่องมืออื่น ๆ ที่รู้จักกันดี (ฉันไม่ทราบว่ามันทำอะไรในขณะที่เป็นที่รู้จักใน ubuntu repositories มันไม่ได้ติดตั้งโดยค่าเริ่มต้นใน 16.04) ครอบครอง namespace ที่

คงจะดีถ้า Ubuntu ให้คำแนะนำวิธีการแก้ไข 'หมดจด' นี้ถ้าไม่ทำด้วยมือสิ่งที่แพคเกจจะทำ (การชนกันยังคงเป็นการชน ... ถ้า + เมื่อใดจะเกิดขึ้น)


1
@ tom-hale answer เป็นวิธี Ubuntu สำหรับสิ่งนี้ คุณใช้ทางเลือกเพื่อระบุโหนดที่ถูกต้อง
kervin


2

สำหรับการเชื่อมโยงกรณีของฉันไม่ ไม่ ทำงานดังต่อไปนี้

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

แต่คุณสามารถเปิด / usr / local / bin / lessc เป็น root และเปลี่ยนบรรทัดแรกจาก node เป็น nodejs

- #! / usr / bin / env โหนด

+ #! / usr / bin / env nodejs


2

ทำตามคำสั่งเหล่านี้เพื่อแก้ไขปัญหา

ในอาคารผู้โดยสาร:

  1. ทำความสะอาดแคช NPM ทั้งหมด:

    $ sudo npm cache clean -f
  2. sudo npm install -g n
  3. ติดตั้ง Node.js เวอร์ชันเสถียรล่าสุด:

    sudo n stable

ตอนนี้ติดตั้ง Node.js เวอร์ชันล่าสุดแล้ว ตรวจสอบเวอร์ชั่นโดยใช้:

node -v


0

สำหรับฉันคำตอบที่ยอมรับยังไม่ได้ผล ฉันเริ่มจากที่แนะนำที่นี่:

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

หลังจากทำเช่นนี้ฉันได้รับข้อผิดพลาดต่อไปนี้:

/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 แจ้งให้แจ้ง = ต้องการ ('update-notifier') ({pkg}) ^^^

SyntaxError: การประกาศขอบเขตบล็อก (let, const, ฟังก์ชัน, คลาส) ยังไม่ได้รับการสนับสนุนภายนอกโหมดที่เข้มงวดที่ Module._extensions..js (module.js: 417: 10) ที่ Module.load (module.js: 344: 32) ที่ Function.Module._load (module.js: 301: 12) ที่ Function.Module.runMain ( module.js: 442: 10) เมื่อเริ่มต้น (node.js: 136: 18) ที่ node.js: 966: 3

การแก้ปัญหาคือการดาวน์โหลดเวอร์ชันล่าสุดของโหนดจากhttps://nodejs.org/en/download/

จากนั้นฉันก็:

sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1

ในที่สุดการอัปเดตก็ประสบความสำเร็จในที่สุด: npm -vเปลี่ยนจาก 3.2.1 เป็น 6.4.1

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