Homebrew Package Manager quản lý công cụ trên macOS

Homebrew là gì?

Homebrew là package manager mã nguồn mở cho macOS và Linux. Nó giúp lập trình viên cài, cập nhật, gỡ cài đặt công cụ dòng lệnh (CLI) chỉ với một lệnh. Trước Homebrew, người dùng macOS phải tải file .pkg từ các trang web khác nhau, tự quản lý phiên bản, và dễ rơi vào tình trạng “it works on my machine”. Homebrew thống nhất quy trình cài đặt, tự xử lý dependency, và cung cấp kho phần mềm hơn 6.000 công thức chính thức. Trang chủ Homebrew hiện được sử dụng bởi hàng triệu lập trình viên trên toàn thế giới.

Laptop hiển thị code editor trên bàn làm việc trắng với cây xanh và cốc nước

Cài đặt và cấu trúc

Cài Homebrew trên Intel Mac chỉ cần chạy lệnh trong terminal. Trên Apple Silicon, nó cài vào /opt/homebrew thay vì /usr/local — tách biệt hai kiến trúc chip. Bạn có thể cài cả hai phiên bản song song nếu cần.

  1. Formula: Công thức cài đặt chính, viết bằng Ruby. Định nghĩa cách tải source, compile, cài binary, và dependency.
  2. Cask: Cài ứng dụng GUI (Visual Studio Code, Docker, Firefox) dưới dạng .dmg hoặc .app.
  3. Tap: Kho bổ sung do cộng đồng duy trì. Ví dụ: homebrew/cask, homebrew/cask-fonts, buo/cask-upgrade.
  4. Cellar: Thư mục cài đặt thực tế, mặc định /usr/local/Cellar (Intel) hoặc /opt/homebrew/Cellar (ARM). Mỗi phiên bản công thức được cài ở đây.

Các lệnh thông dụng

Làm việc với Homebrew không cần nhớ quá nhiều lệnh. Nhóm lệnh thành các use case:

  • Tìm kiếm: brew search <từ khóa> — tìm công thức phù hợp.
  • Cài đặt: brew install <package> — cài công thức mới nhất.
  • Cập nhật: brew upgrade — nâng tất cả công thức lên phiên bản mới nhất.
  • Gỡ cài: brew uninstall <package> — xóa công thức, giữ dependency rác? Thêm --zap để xóa hết file config.
  • Kiểm tra: brew doctor — chẩn đoán vấn đề cấu hình, cảnh báo nếu có gì sai.
  • Dọn dẹp: brew cleanup — xóa phiên bản cũ của công thức đã nâng cấp.
  • Thông tin: brew info <package> — xem phiên bản, dependency, cách dùng.
MacBook Pro với màn hình hiển thị code HTML và CSS trên nền tối trong điều kiện ánh sáng dịu

Quản lý phiên bản phức tạp

Homebrew không chỉ cài mới nhất. Với brew services, bạn có thể chạy tool như service nền. Ví dụ: brew services start mysql khởi động MySQL khi đăng nhập macOS. Kết hợp với brew linkbrew unlink, bạn có thể giữ nhiều phiên bản cùng lúc — switch giữa Node 18 và Node 20 chỉ bằng vài lệnh.

Đối với ngôn ngữ lập trình, Homebrew cài binary sẵn hoặc compile từ source. Python 3.12 được cài qua brew install python đưa binary vào Cellar, không can thiệp vào Python hệ thống. pipx đi kèm giúp cài CLI Python (black, ruff, httpie) mà không cần virtualenv.

So sánh với MacPorts và Fink

Homebrew hiện thống trị không gian package manager macOS, nhưng có đối thủ cũ hơn:

Tiêu chí Homebrew MacPorts Fink
Lượng công thức >6.000 >24.000 >3.000
Vị trí cài đặt /usr/local (Intel), /opt/homebrew (ARM) /opt/local /sw
Quản lý phiên bản Có thể cài nhiều phiên bản song song Có nhưng phức tạp hơn Hạn chế
Apple Silicon Hỗ trợ native ARM Hỗ trợ native ARM Không chính thức
Cộng đồng Rất lớn, cập nhật nhanh Ổn định, lâu đời Giảm

Best practices

Một số thói quen giúp Homebrew chạy mượt mà:

  • Chạy brew update trước khi cài: Đảm bảo công thức mới nhất, tránh cài phiên bản lỗi thời.
  • Chạy brew upgrade định kỳ: Mỗi tuần một lần giúp công cụ luôn bảo mật.
  • Không cài cùng lúc quá nhiều công thức: Mỗi công thức là một Ruby process. Cài 50 cái cùng lúc có thể treo terminal.
  • Sao lưu Brewfile: Dùng brew bundle dump export danh sách công thức đã cài. Khôi phục bằng brew bundle trên máy mới.
  • Tắt analytics nếu không muốn: brew analytics off — Homebrew gửi dữ liệu sử dụng lên server theo mặc định.

Kết luận

Homebrew là công cụ nền tảng cho lập trình viên macOS. Nó giảm thiểu thời gian cài đặt, tự động dependency, và cung cấp lệnh thống nhất cho hàng ngàn công cụ. Bất kỳ ai mới chuyển sang macOS đều nên cài Homebrew ngay lần đầu tiên. Nguồn tham khảo: brew.sh, Homebrew Manpage, Homebrew GitHub.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Turborepo: Hệ thống build monorepo siêu nhanh từ Vercel

Turbo hay Turborepo là hệ thống build monorepo mã nguồn mở được Vercel phát triển, viết bằng Rust để đạt tốc độ cao nhất. Trong môi trường JavaScript và TypeScript…

Xem thêm

Git Worktree: Quản lý nhiều branch song song trong một repo

Tại sao cần Git Worktree? Git workflow thông thường ép bạn chuyển branch liên tục: git checkout feature-A, sửa, rồi git checkout main, hotfix, rồi quay lại. Mỗi lần checkout…

Xem thêm

TypeScript satisfies operator là gì? Kiểm tra kiểu không đổi biến

TypeScript satisfies operator (toán tử satisfies) cho phép kiểm tra kiểu của một biểu thức phù hợp với kiểu mong đợi mà không thay đổi kiểu suy luận gốc của…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất