นี่เป็นวิธีที่ยอดเยี่ยมในการติดตั้ง 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
ผ่านคำสั่ง:apt
sudo apt install nodejs nodejs-legacy