Homebrew M1 (ARM64)

Supphachoke Suntiwichaya
NECTEC
Published in
2 min readDec 6, 2020

ใครสนใจทดลองเล่น package ที่ติดตั้งจาก Homebrew แบบ M1 หรือ ARM64 ตอนนี้ก็สามารถเล่นกันได้แล้ว package พื้นฐานหลายตัวได้รับการ patch ผมบันทึกไว้สั้นๆ ดังนี้

ภาพจากเว็บ brew.sh

** เนื่องจากบทความนี้เขียนไว้ตั้งแต่ HomeBrew เริ่มสนับสนุน M1 ดังนั้น ณ ปัจจุบัน Packages ส่วนใหญ่ใน HomeBrew จะสนับสนุน M1 (ARM64) แล้ว ท่านสามารถใช้งานใน mode ARM64 เป็นหลัก ซึ่งทำตามหัวข้อ M1(ARM64) ด้านล่างได้เลย

x86_64

ณ ตอนนี้ทางทีมงาน Homebrew ยังแนะนำให้ใช้แบบ x86_64 เพื่อความมั่นใจว่าใช้งานได้แน่นอนซึ่งการติดตั้งแบบนี้ง่ายๆ ทำได้ดังนี้

** ปัจจุบันสามารถใช้งาน arm64 ได้เป็นส่วนใหญ่แล้วครับ

arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"arch -x86_64 brew install htop

การใช้ arch -x86_64 ยังสามารถใช้ได้กับหลายๆ สถานการเช่น compile source code ถ้าไม่ระบุอะไรเลยมันจะพยายาม compile เป็นแบบ arm64 เราก็ใส่ arch -x86_64 ไว้ข้างหน้าแล้วทำการ configure หรือ make หรือตอนเรียกใช้งานก็ได้ เช่นในกรณีของ brew ตอนเรียกใช้สามารถใส่ arch -x86_64ไว้หน้าคำสั่ง brew ก็ได้ แต่มันก็น่ารำคาญหลายคนแนะนำให้เปิด terminal ใน mode x86_64 ไปเลยก็ได้

เปิด iTerm ใน mode x86_64
เปิด Terminal ใน mode x86_64

M1 (ARM64)

สำหรับคนที่ชอบตื่นเต้นก็ต้องเสี่ยงและลุ้นกันหน่อย Homebrew กำลัง patch และทดสอบกันอย่างเข้มข้นทำให้ตอนนี้ package หลายๆ ตัวสามารถทำงานได้แล้ว วิธีติดตั้งก็ไม่ยากอะไรครับทำตามนี้เลย

** ปัจจุบันไม่ต้องลุ้นและเสี่ยงแล้ว

mkdir /opt/homebrew
sudo chown mrchoke /opt/homebrew ## เปลี่ยนเป็นชื่อ user ของคุณ
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C /opt/homebrew

ถ้าไม่มีอะไรผิดพลาดก็สามารถเรียกใช้ brew ได้โดยตรงที่

/opt/homebrew/bin/brew update

SET PATH

echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrcsource ~/.zshrc

ตอนนี้ก็น่าจะเรียก brew แบบสั้นๆ ได้แล้วลองติดตั้งกันได้เลย

brew install htop

การติดตั้งใน mode arm64 จะช้าหน่อยนะครับเพราะส่วนใหญ่ อาจจะทั้งหมดต้อง compile ก้นสดๆ

สามารถทดสอบกันได้ว่า binary ที่ได้เป็นแบบไหนโดยใช้คำสั่ง

file /opt/homebrew/bin/htop
ตรวจ arch ของ binary
ตรวจดูว่ามัน run ใน mode ไหน

--

--