DNF5: Cú hích tốc độ đáng tiền trên Fedora
Mình dùng Fedora làm máy làm việc chính đã hơn 2 năm và cực kỳ ưng ý với tốc độ cập nhật package của distro này. Thế nhưng, có một thứ vẫn làm mình ‘lăn tăn’ bấy lâu nay: tốc độ khởi động của lệnh dnf truyền thống. Dù mình đã ‘vọc’ đủ cách như chỉnh max_parallel_downloads hay đổi mirror xịn nhất, cái cảm giác ngồi chờ metadata đồng bộ vẫn cực kỳ gây ức chế.
Cách đây khoảng 6 tháng, mình quyết định chuyển hẳn sang dùng DNF5 cho công việc hàng ngày. DNF5 không đơn giản là ‘bình mới rượu cũ’; nó là một cuộc cách mạng thực sự về kiến trúc. Thay vì phụ thuộc vào Python chậm chạp, DNF5 được viết lại hoàn toàn bằng C++. Kết quả? Mọi thao tác diễn ra gần như tức thì, còn lượng RAM tiêu thụ thì ‘mỏng’ đi trông thấy.
Quick Start: Trải nghiệm DNF5 sau vài câu lệnh
Nếu đang ở Fedora 39, 40 hay vừa ‘lên đời’ bản 41 (nơi DNF5 sắp thành ‘ông chủ’ mặc định), việc trải nghiệm cực kỳ nhàn. Bạn không cần gỡ DNF cũ vì hai phiên bản này hoàn toàn có thể ‘chung sống hòa bình’ trên cùng một hệ thống.
1. Cài đặt DNF5
sudo dnf install dnf5
2. Kiểm tra phiên bản
dnf5 --version
3. Thử cài đặt một package bất kỳ
Hãy thử cài htop để thấy tốc độ load metadata ‘nhanh như chớp’:
sudo dnf5 install htop
Điểm khác biệt dễ thấy nhất là bảng tóm tắt (transaction summary) hiện ra ngay lập tức sau khi bạn nhấn Enter. Không còn cảnh ngồi nhìn dòng chữ “Determining fastest mirrors” chạy loằng ngoằng mất 10-15 giây như trước nữa. Với DNF5, con số này chỉ còn khoảng 2-3 giây.
Tại sao DNF5 lại ‘vượt mặt’ DNF cũ?
Để hiểu tại sao DNF5 lại mạnh mẽ đến thế, chúng ta cần ‘mổ xẻ’ cấu trúc bên dưới. DNF4 (bản hiện tại) là sự kết hợp giữa Python và các thư viện C đời cũ. Python rất linh hoạt để phát triển nhanh nhưng lại là rào cản lớn về hiệu năng khi phải xử lý hàng chục MB dữ liệu metadata mỗi lần cập nhật.
Kiến trúc hợp nhất (Unified Library)
Ngày trước, DNF, PackageKit và Microdnf mỗi ông dùng một kiểu thư viện riêng, dẫn đến việc không thể chia sẻ cache. Bạn vừa chạy dnf update xong, mở GNOME Software lên nó lại bắt đầu tải lại metadata từ đầu. DNF5 giải quyết triệt để sự lãng phí này bằng cách đưa tất cả về chung một thư viện libdnf5. Mọi công cụ quản lý gói sẽ dùng chung một database và cache, giúp tiết kiệm đáng kể dung lượng ổ cứng lẫn băng thông.
Nói lời tạm biệt với Python
Việc chuyển sang C++ giúp DNF5 loại bỏ hoàn toàn gánh nặng của trình thông dịch Python. Trên các máy cấu hình thấp hoặc container, sự khác biệt này rất rõ ràng. Thử nghiệm trên máy mình (16GB RAM), lệnh dnf5 upgrade chỉ ngốn khoảng 80-100MB RAM, trong khi dnf v4 thường xuyên leo lên mốc 250-300MB.
Các lệnh DNF5 nâng cao cho Sysadmin
Về cơ bản, DNF5 vẫn giữ nguyên cú pháp quen thuộc nên bạn sẽ không mất thời gian học lại. Tuy nhiên, có vài cải tiến cực kỳ đáng giá mà mình tin là bạn sẽ dùng tới.
Quản lý lịch sử (History) ‘xịn’ hơn
Lệnh history trên DNF5 trực quan và chi tiết hơn nhiều. Đây là ‘phao cứu sinh’ mỗi khi mình lỡ tay cài nhầm một mớ thư viện gây xung đột môi trường dev:
# Liệt kê các phiên giao dịch gần đây
sudo dnf5 history
# Xem 'nội soi' một phiên giao dịch (ví dụ ID số 5)
sudo dnf5 history info 5
# Rollback (hoàn tác) lại trạng thái trước đó
sudo dnf5 history undo 5
Xử lý Advisory (Thông báo bảo mật)
Với anh em quản trị server, việc lọc các bản vá bảo mật là ưu tiên hàng đầu. DNF5 hỗ trợ lọc theo mức độ nghiêm trọng rất chuẩn:
# Liệt kê tất cả thông báo bảo mật
sudo dnf5 advisory list
# Chỉ cài các bản vá mức độ 'Critical' (Chí mạng)
sudo dnf5 upgrade --advisory-severity=Critical
Kinh nghiệm thực tế: Những điểm cần lưu ý
Sau nửa năm dùng DNF5 làm ‘công cụ tác chiến’ chính, mình rút ra được vài lưu ý nhỏ cho các bạn:
- Plugin đang được hoàn thiện: DNF4 có hệ sinh thái plugin cực kỳ đồ sộ. DNF5 hiện vẫn đang trong quá trình chuyển đổi các plugin này sang. Nếu bạn đang dùng các tool quản lý repo nội bộ quá đặc thù, hãy kiểm tra kỹ tính tương thích trước nhé.
- Tận dụng Aliases: Để gõ nhanh hơn, mình thường thêm
alias d5='sudo dnf5'vào file.bashrc. Mình khuyên bạn không nên đổi thẳng têndnfthànhdnf5ngay để tránh làm hỏng các script hệ thống cũ. - Câu chuyện về Cache: DNF5 lưu cache tại
/var/cache/libdnf5/, khác hoàn toàn với DNF4. Vì vậy ở lần chạy đầu tiên, nó vẫn cần thời gian tải dữ liệu, đừng vội đánh giá nó chậm ngay lúc đó nhé!
Lời kết cho anh em Fedora-ers
DNF5 thực sự là một cú hích cần thiết cho hệ sinh thái Fedora, giải quyết triệt để bài toán tốc độ vốn gây đau đầu bấy lâu nay. Nếu bạn đang sở hữu một chiếc máy chạy Fedora, đừng ngần ngại thử nghiệm dnf5 ngay hôm nay. Thú thực, sau khi đã quen với sự mượt mà của DNF5, việc quay lại gõ dnf v4 mang lại cảm giác khá là ‘sốt ruột’.
Sắp tới, khi Fedora chính thức chuyển dịch hoàn toàn sang DNF5, chúng ta sẽ còn thấy nhiều tính năng hay ho hơn, nhất là khả năng tích hợp sâu với Podman. Bạn có gặp khó khăn gì khi cài đặt hay có thủ thuật nào hay với DNF5 không? Chia sẻ ngay ở phần bình luận nhé!

