ย้าย Node.js จาก native install มาเป็น Homebrew กันเถอะ
สำหรับใครที่กำลังจะเริ่มต้นพัฒนาด้วย Node.js สิ่งที่จำเป็นต้องทำเป็นอันดับแรกก็คือติดตั้ง Node.js ซึ่งวิธีที่ติดตั้งง่ายที่สุดก็คือเข้าไปที่หน้าเว็บไซท์ Node.js และ download ตัว installer ลงไป
แต่สำหรับใครที่ใช้ MacOS อยู่ วันนี้ผมอยากลองชวนให้ลองย้ายมาใช้ homebrew พร้อมกับวิธีในการ uninstall Node.js อันเดิม ออกแบบหมดจด พร้อมเริ่มต้นชีวิตดีดีใหม่บน Homebrew กัน
Homebrew คืออะไร
ถ้าเอาตามหน้าเว็บไซท์ของ Homebrew เค้าก็แปลเป็นภาษาไทยแบบชัดเจนมากๆเลยมันคือ “แพคเกจเมเนเจอร์ที่ขาดหายไปของ macOS” ซึ่งก็ตามนั้นเลย มันคือ Package Manager ที่จะช่วยให้เราสามารถ install, update หรือ delete package ใดๆ ได้อย่างง่ายดาย คล้ายๆกับที่เราใช้ npm หรือ nuget ของ windows อะไรประมาณนั้นเลย เช่นถ้าต้องการติดตั้ง Node.js ก็เพียงแค่พิมพ์คำว่า
brew install node
ติดตั้ง homebrew
เนื่องจากว่า ตอนนี้ในเครื่องเรายังไม่มี Homebrew ดังนั้นต้องติดตั้ง Homebrew กันก่อนโดยสามารถใช้คำสั่งนี้ได้เลย
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
ซึ่งก็ปล่อยมัน download และติดตั้งสักครู่ จนได้อะไรประมาณนี้ออกมา
ลองทดสอบดูว่าติดตั้งเสร็จแล้วจริงด้วยคำสั่ง
brew -v
ลบ Node.js เดิมออกกัน
จริงๆการลง Node ผ่าน Homebrew เราอาจจะใช้วิธีสั่งให้ Homebrew มัน overwrite package ที่เคยติดตั้งไปแล้วก็ได้ แต่ในที่นี้เราอยากได้อะไรคลีนๆ (จริงๆเนื้อที่ในเครื่องมีไม่ค่อยพอ เลยต้องลบทุกอย่างที่ไม่จำเป็นออกไป) เราสามารถลบได้โดยใช้คำสั่งนี้
sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}
จากนั้นสั่งติดตั้ง node.js กันเลยโดนใช้คำสั่งที่เคยเกริ่นไปก่อนหน้านี้ว่า
brew install node
ถ้าเราโชคดีมันควรจะเรียบร้อย แต่หลายคนรวมทั้งผมจะไม่เรียบร้อย เพราะมีปัญหาเล็กๆน้อยๆที่ต้องจัดการนิดหน่อย ซึ่งถ้าจากตามภาพจะเป็นการบอกว่า มีบางอย่างไม่ถูกต้องในขั้นตอนการทำ brew link และจะบอกให้เราไปลบไฟล์ ‘usr/local/include/node/common.gypi’
ซึ่งทางที่ง่ายที่สุดก็คือสั่ง force ให้ Homebrew มันลงทับไปให้หมด ด้วยคำสั่ง
brew link --overwrite node
แต่ถ้าเราต้องการไล่ลบ เราสามารถเริ่มต้นได้โดยการ list ไฟล์ที่จำเป็นต้องลบทั้งหมดขึ้นมาก่อนด้วยคำสั่ง
brew link --overwrite --dry-run node
จากนั้นทำการไล่ลบไฟล์ที่มันแจ้งขึ้นมาทั้งหมดด้วยคำสั่ง
sudo rm -rf [folder] หรือ
sudo rm [file]
แต่ถ้าใครเจอ error ประมาณว่าusr/local/share/systemtap is not writable
เราสามารถให้สิทธิ์กับ folder นั้นโดยใช้คำสั่งนี้ได้
cd /usr/local/share
sudo chown -R yourusername:yourgroupname systemtap
เช่น
sudo chown -R petch:admin systemtap
จากนั้นค่อยใช้คำสั่ง brew link node
อีกทีก็จะเรียบร้อย ส่วนถ้าใครอยากทดสอบว่าใช้งานได้แล้ว ก็ลองพิมพ์คำสั่งว่า node -v
หรือพิมพ์คำสั่งว่า npm -v
เพื่อทดสอบได้เลย