ย้าย Node.js จาก native install มาเป็น Homebrew กันเถอะ

Petch Kruapanich
readmoreth
Published in
2 min readMay 26, 2019

สำหรับใครที่กำลังจะเริ่มต้นพัฒนาด้วย 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 และติดตั้งสักครู่ จนได้อะไรประมาณนี้ออกมา

result หลัง download homebrew

ลองทดสอบดูว่าติดตั้งเสร็จแล้วจริงด้วยคำสั่ง

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 เพื่อทดสอบได้เลย

--

--

Petch Kruapanich
readmoreth

Full time Developer, Part time writer, Vinyl lover