Chuyện đêm muộn: Khi ‘sudo apt install’ là một sự xa xỉ
2 giờ sáng thứ Ba, mình đang loay hoay với con server Ubuntu 20.04 LTS của khách để fix gấp script automation. Script yêu cầu gh (GitHub CLI) tối thiểu bản 2.40 để chạy API mới. Ngặt nỗi, repository mặc định của OS chỉ có bản 2.4 cũ mèm, thiếu đủ thứ tính năng.
Mọi chuyện bế tắc hơn khi account mình không có quyền sudo. Gọi đội hạ tầng xin quyền lúc nửa đêm thì đúng là vô vọng. Cảm giác lúc đó giống như bạn đang đứng trước một cánh cửa khóa chặt trong khi bên trong nhà đang cháy, mà chìa khóa thì nằm trong túi một người đang ngủ say.
Hồi mới làm Sysadmin, mình từng mất cả buổi chiều để compile từ source code rồi rơi vào cái bẫy “dependency hell” (thiếu hụt thư viện liên đới). Nhưng lần này, mình dùng Homebrew (hay Linuxbrew) để giải quyết gọn gàng trong 5 phút.
Tại sao các trình quản lý gói mặc định lại gây khó dễ?
Dân Linux vốn đã quen với apt, yum, hay dnf. Tuy nhiên, trong môi trường làm việc thực tế, chúng bộc lộ hai điểm yếu lớn:
- Package quá cũ: Các bản distro như Debian hay CentOS ưu tiên sự ổn định nên package thường chậm hơn bản gốc từ 6 tháng đến 2 năm.
- Rào cản quyền hạn: Bạn không thể cài thêm
htophayfzfnếu thiếusudo. Ở các doanh nghiệp lớn, quy trình xin quyền root đôi khi mất vài ngày.
Bạn có thể tải file binary rồi copy vào /usr/local/bin. Cách này chạy được ngay nhưng sẽ là thảm họa khi cần update. Bạn sẽ sớm quên mất mình đã cài bản nào và xóa nó ở đâu.
Homebrew – Không chỉ dành cho macOS
Dân tình thường mặc định Brew là “đặc sản” của Mac. Thực tế, nó chạy trên Linux cực mượt vì cài đặt mọi thứ vào thư mục home của user. Ba ưu điểm lớn nhất bao gồm:
- Cài đặt package thoải mái mà không cần chạm vào quyền root.
- Luôn cập nhật phiên bản mới nhất (bleeding edge) ngay khi hãng vừa release.
- Tách biệt hoàn toàn với thư viện hệ thống, không lo làm hỏng OS.
Các bước triển khai thực tế
1. Chuẩn bị môi trường
Brew không cần root để cài package, nhưng để cài chính nó, server cần vài công cụ cơ bản. Nếu là server mới tinh, hãy nhờ admin chạy lệnh này một lần duy nhất:
# Cho Ubuntu/Debian
sudo apt-get install build-essential procps curl file git
# Cho Fedora/CentOS/RHEL
sudo yum groupinstall 'Development Tools'
sudo yum install curl file git
2. Chạy script cài đặt
Đừng copy-paste mù quáng. Hãy dùng lệnh chính thức từ GitHub của Homebrew để đảm bảo an toàn:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Quá trình này mất khoảng 2-3 phút. Brew sẽ tự cài vào /home/linuxbrew/.linuxbrew hoặc ~/.linuxbrew tùy vào quyền hạn user của bạn.
3. Cấu hình biến môi trường (Bước quan trọng)
Lỗi phổ biến nhất là cài xong gõ brew hệ thống báo command not found. Shell cần biết đường dẫn đến thư mục chứa Brew. Đừng tắt terminal vội, hãy nhìn phần “Next steps” và chạy các lệnh tương tự như sau:
test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bashrc
Giờ thì mỗi khi bạn login, Brew sẽ tự động sẵn sàng.
Xử lý công việc trong tích tắc
Trở lại ca trực lúc 2 giờ sáng, sau khi có Brew, mình chỉ mất đúng 30 giây để lấy công cụ:
# Cập nhật danh sách gói
brew update
# Cài GitHub CLI bản mới nhất (ví dụ v2.45.0)
brew install gh
# Kiểm tra
gh --version
Kết quả: Mình có ngay bản gh mới nhất, fix xong script và đi ngủ lúc 2:15 sáng thay vì ngồi đợi admin phản hồi.
Vài lệnh “bỏ túi” hữu ích:
brew list: Liệt kê các công cụ đã cài.brew upgrade: Nâng cấp mọi thứ lên bản mới nhất chỉ bằng 1 lệnh.brew doctor: Tự chẩn đoán lỗi hệ thống (rất nên dùng khi thấy brew chạy chậm).brew cleanup: Dọn dẹp các file rác và bản cài cũ để giải phóng ổ cứng.
Lưu ý từ kinh nghiệm thực tế
Dù Brew rất tiện, nhưng đừng biến nó thành bãi rác. Dưới đây là vài lời khuyên của mình:
- Tránh cài service hệ thống: Đừng cài Docker, Nginx hay MySQL bằng Brew nếu muốn chạy ổn định lâu dài. Hãy dùng Docker container hoặc package chuẩn của OS cho những thứ này. Brew mạnh nhất ở mảng CLI tools (jq, ripgrep, neovim…).
- Kiểm tra xung đột: Nếu một công cụ có cả ở
aptvàbrew, hãy gõwhich <tên_gói>để biết bạn đang dùng bản nào. Thông thường, bản trong Brew sẽ được ưu tiên hơn. - Dung lượng ổ cứng: Brew giữ lại cache của các bản tải về cũ. Nếu server còn ít dung lượng, hãy chạy
brew cleanupthường xuyên.
Lời kết
Homebrew trên Linux là “cứu cánh” thực sự khi bạn bị giới hạn quyền hạn hoặc cần công cụ mới nhất để làm việc. Nó giúp mình thoát khỏi những rắc rối về dependency để tập trung vào việc quan trọng nhất: giải quyết sự cố. Nếu bạn chưa thử, hãy cài nó lên server lab ngay hôm nay. Tin mình đi, nó sẽ giúp bạn tiết kiệm cực nhiều thời gian về sau đấy.

