นี่เป็นวิธีที่ยอดเยี่ยมในการติดตั้ง NodeJS
หากคุณเรียกใช้tar tf /usr/save/node-v4.2.1-linux-x64.tar.gzไฟล์คุณจะเห็นสิ่งนี้:
node-v4.2.1-linux-x64/
node-v4.2.1-linux-x64/bin/
node-v4.2.1-linux-x64/bin/npm
node-v4.2.1-linux-x64/bin/node
node-v4.2.1-linux-x64/share/
node-v4.2.1-linux-x64/share/man/
node-v4.2.1-linux-x64/share/man/man1/
โดยทั่วไปหมายความว่าเมื่อคุณแตกไฟล์เก็บถาวร tar นี้มันจะแตกไปยังโฟลเดอร์ที่เรียกว่าnode-v4.2.1-linux-x64โฟลเดอร์ย่อยทั้งหมดเหล่านี้ (และการติดตั้งโหนด) ที่อยู่ด้านใน ในความเป็นจริงคุณสามารถลองใช้การแยกนี้เพื่อให้ได้แนวคิดที่ดีกว่า:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
หากคุณเรียกใช้lsคุณจะเห็นnode-v4.2.1-linux-x64โฟลเดอร์
ตอนนี้--strip-components 1ทำสิ่งที่น่าสนใจในกระบวนการสกัด จากman tar:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
โดยทั่วไปหมายความว่าเมื่อtarจะแยกเก็บถาวรของคุณมันจะแกล้งทำเป็นnode-v4.2.1-linux-x64โฟลเดอร์ที่ไม่ได้มี แต่มันเป็นไปได้ที่สารสกัดbin/, share/และทุกโฟลเดอร์อื่น ๆ โดยตรง
ในความเป็นจริงคุณสามารถลอง:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
หากคุณเรียกใช้lsคุณจะเห็นว่าไม่มีnode-v4.2.1-linux-x64โฟลเดอร์อีกต่อไป มันเป็นเพียงbin/, include/, lib/และshare/(ทุกโฟลเดอร์โดยบังเอิญใน/usr/local/)
คำสั่งที่สองของคุณจะไม่ทำงานเพราะมันเพิ่งจะแตกnode-v4.2.1-linux-x64โฟลเดอร์ไป/usr/local(ถ้ามันวิ่งเลย) หากคุณเรียกใช้ls /usr/localคุณอาจเห็นโฟลเดอร์นี้ห้อยอยู่ rmมันไม่มีประโยชน์อย่าลังเลที่จะลบด้วย สำหรับสาเหตุที่ไม่มีประโยชน์ให้อ่านต่อ ...
ตอนนี้เราได้อธิบายวิธีการทำงานของคำสั่ง tar แล้วเราสามารถอธิบายวิธีการติดตั้งนี้ได้
ทุกระบบ Linux มีสิ่งที่เรียกว่า$PATHตัวแปรซึ่งกำหนดตำแหน่งที่จัดเก็บไฟล์ที่เรียกใช้งานได้ /usr/local/binในสถานที่เหล่านี้คือ เมื่อคุณแยกไบนารี่นั้นไว้ข้างใน/usr/local(ซึ่งฉันมั่นใจว่าเป็นคำแนะนำในการติดตั้งของคุณ) ไบนารี NodeJS จะถูกเขียนไป/usr/local/bin/nodeตามวิธีการแยกส่วน ในทำนองเดียวกันทุกไลบรารีจะถูกเพิ่มไปยังโฟลเดอร์ไลบรารีท้องถิ่นและทุกอย่างสวยมากเพียงแค่ไปที่มันเป็นของ
ตอนนี้ข้อแม้ (และทำไมสิ่งนี้จึงน่ารำคาญ) ก็คือว่าaptจะไม่เห็นหรือเข้าใจหรือรู้ว่าเกิดอะไรขึ้น คุณจะไม่สามารถอัปเดตผ่านทางsudo apt upgradeหรือคล้ายกัน คุณจะต้องเข้าไปด้วยตนเองและทำความสะอาดการติดตั้ง NodeJS เก่าแล้วใส่ใหม่ในกรณีที่คุณต้องการอัพเกรด
ฉันอยากจะแนะนำให้คุณเรียกใช้sudo apt install nodejs-legacyแทน ความเจ็บปวดน้อยลงและจะอัปเดตให้คุณโดยอัตโนมัติ
jodejsผ่านคำสั่ง:aptsudo apt install nodejs nodejs-legacy