node & nodejs มีเวอร์ชั่นต่างกัน


15

ฉันอัพเดต / ติดตั้งโหนด js เวอร์ชันล่าสุดได้สำเร็จโดยใช้คำสั่งเหล่านั้น ( curlวิธีที่เป็นทางการไม่ทำงานสำหรับฉัน):

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

sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node

อย่างไรก็ตามรุ่นของโหนดและโหนดของฉันแตกต่างกัน:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

ดูเหมือนว่ามีการติดตั้งโหนดใหม่/usr/local/bin/nodeดังนั้นฉันจึงลอง:

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

แต่มันกลับมา:

ln: failed to create symbolic link ‘/usr/local/bin/node’: File exists

ฉันใช้ลิงก์นี้ด้วย:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node
ln: failed to create symbolic link ‘/usr/bin/node’: File exists

ฉันจะใช้กรอบบางอย่างที่ขึ้นอยู่กับเช่นnode Ionicเวอร์ชันของโหนดใดที่จะใช้

ฉันควรทำอย่างไรเพื่อแก้ไขปัญหานี้

ขอบคุณมาก ๆ สำหรับความช่วยเหลือของคุณ


คำถามที่แท้จริงคือฉันจะบอกให้ n เขียนทับโหนดรุ่นใด ๆ ที่มีอยู่และเชื่อมโยงทั้งnodejsและnodeไบนารีที่ติดตั้งโดย n และถ้าไม่มีความสามารถในการทำเช่นนั้นอะไรคือวิธีการที่ทันสมัย? ในสภาพแวดล้อมการทำงานมีแนวโน้มที่จะเกิดข้อผิดพลาดได้อย่างมากหาก nodejs และโหนดระบุที่อยู่เวอร์ชันต่างๆของ nodejs
atripes

คำตอบ:


13

ขั้นตอนที่แก้ไขปัญหาเดียวกันสำหรับฉัน:

sudo apt-get remove nodejs
sudo ln -s /usr/bin/node /usr/bin/nodejs

คำอธิบาย

คุณได้ติดตั้ง nodejs สองเวอร์ชันบนคอมพิวเตอร์ของคุณดังนั้นคุณต้องลบหนึ่งในนั้น สถานการณ์ของคุณ:

node v5.0.0 - you will keep this one
nodejs v0.10.25 - this you can remove

คุณสามารถลบnodejsแพ็คเกจได้ด้วยapt-get removeคำสั่ง นี่จะเป็นการลบไฟล์/usr/bin/nodejsและคุณจะไม่ได้รับข้อความแสดงข้อผิดพลาดอีก

ตอนนี้คุณสามารถสร้างลิงก์สัญลักษณ์ที่ชื่อ "/ usr / bin / nodejs" ซึ่งชี้ไปที่แหล่งที่มา "/ usr / local / bin / node" ในตัวอย่างของคุณคุณมีลำดับเส้นทางที่ผิด "จาก" และ "ถึง"

sudo ln -s source_file myfile

ข้อมูลเพิ่มเติมเกี่ยวกับการสร้างลิงก์: ลิงก์สัญลักษณ์ทำงานอย่างไร


5

ข้อผิดพลาด:

ln: failed to create symbolic link ‘/usr/bin/node’: File exists

โดยปกติจะเกิดขึ้นเมื่อคุณมี Nodejs สองเวอร์ชันจริง ๆ , a กับนามแฝงของnodeและอีกnodejsชื่อหนึ่งมีนามแฝง, ดังที่เราเห็นผลลัพธ์ของคำสั่งnode --versionและnodejs --version:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

ดังนั้นคุณไม่สามารถสร้างลิงก์สัญลักษณ์สำหรับไฟล์ที่มีอยู่แล้ว

ในการแก้ปัญหานี้คุณจะต้องลบแพ็กเกจทั้งสองโดยใช้:

sudo apt-get purge node
sudo apt-get purge nodejs
sudo rm -rf bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node

และติดตั้งเฉพาะnodejsแพ็คเกจโดยใช้คำสั่ง:

sudo apt-get install nodejs

และสร้างลิงก์สัญลักษณ์โดยใช้:

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

หรือติดตั้งnodejs-legacyที่จะแก้ไขปัญหานี้ด้วยคำสั่ง:

sudo apt-get install nodejs-legacy 

ขอบคุณมากคุณเพิ่มข้อมูลฉันแก้ไขปัญหาด้วยตัวเองแล้ว ฉัน upvoted
areim

0

สำหรับฉันnodeคำสั่งคือ NodeJS ติดตั้งโดยnvmและnodejsคำสั่งคือ NodeJS ติดตั้งโดยใช้apt-get

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