DNF là trình quản lý gói (package manager) dùng cho các bản phân phối Linux dựa trên RPM, hỗ trợ cài đặt, cập nhật và gỡ bỏ phần mềm một cách tự động và nhất quán. Trong bài viết này, mình sẽ tập trung hướng dẫn cách sử dụng DNF từ cơ bản đến nâng cao để quản trị và tối ưu hệ thống Linux hiệu quả hơn.
Những điểm chính
- Khái niệm: Hiểu rõ DNF là trình quản lý gói thế hệ mới cho các bản phân phối Linux dựa trên RPM, giúp bạn nhận biết vai trò của nó trong việc cài đặt, cập nhật và gỡ bỏ phần mềm.
- Vai trò: Biết được DNF là công cụ quản lý phần mềm mặc định trên các hệ thống RHEL 8+, giúp nhận biết tầm quan trọng của nó trong việc duy trì và bảo mật hệ thống.
- Chức năng: Nắm được các chức năng chính như cài đặt, cập nhật, gỡ bỏ và quản lý kho phần mềm, giúp bạn khai thác toàn bộ khả năng của công cụ để quản lý gói một cách hiệu quả.
- Lý do nên dùng DNF: Nắm được các ưu điểm chính như hiệu năng tối ưu, xử lý phụ thuộc thông minh và API linh hoạt, giúp bạn hiểu tại sao DNF là lựa chọn thay thế vượt trội cho YUM.
- Các lệnh cơ bản: Nắm vững các lệnh quản lý gói thường dùng như install, update, remove, giúp bạn thực hiện các tác vụ hàng ngày một cách hiệu quả.
- Các lệnh hữu ích: Biết cách quản lý nhóm gói, repository và lịch sử giao dịch, giúp bạn quản trị hệ thống một cách nâng cao và linh hoạt hơn.
- Câu hỏi thường gặp: Được giải đáp các thắc mắc về khả năng thay thế YUM, hỗ trợ proxy và khóa phiên bản gói, giúp củng cố kiến thức và giải quyết các vấn đề thực tế.
DNF Linux là gì?
DNF (Dandified YUM) là trình quản lý gói dòng lệnh thế hệ mới dành cho các bản phân phối Linux dùng định dạng gói RPM, được thiết kế để thay thế YUM cũ với hiệu năng và khả năng xử lý phụ thuộc tốt hơn. Tên DNF viết tắt từ Dandified YUM, thể hiện đây là phiên bản nâng cấp của trình quản lý gói YUM truyền thống.

Vai trò của DNF trên Linux
DNF là công cụ mặc định để cài đặt, cập nhật, nâng cấp và gỡ bỏ phần mềm trên các hệ thống RHEL 8, CentOS 8/Stream, Fedora 22+ và các bản phân phối tương đương. Trên các bản phân phối này, DNF đảm nhận luôn vai trò mà trước đây YUM phụ trách, giúp việc quản lý phần mềm tập trung vào một trình quản lý thống nhất.

Chức năng chính của DNF
DNF cho phép người dùng dễ dàng cài đặt, nâng cấp, tìm kiếm, kiểm tra thông tin và gỡ bỏ các gói RPM thông qua giao diện dòng lệnh. Ngoài làm việc với gói riêng lẻ, DNF còn quản lý kho phần mềm (repository), hỗ trợ bật/tắt repo, khóa phiên bản và cập nhật toàn bộ hệ thống chỉ với một vài lệnh đơn giản.
Tại sao nên dùng DNF thay vì YUM?
Bạn nên dùng DNF thay vì YUM, vì:
- Hiệu năng tối ưu hơn: Thao tác trên gói diễn ra nhanh, tiết kiệm tài nguyên RAM và xử lý tốt trên hệ thống có nhiều gói phần mềm.
- Xử lý phụ thuộc thông minh: Sử dụng thuật toán giải phụ thuộc hiện đại, giảm xung đột và treo hệ thống khi cài đặt hay nâng cấp gói.
- API linh hoạt, dễ mở rộng: Sở hữu API được tài liệu hóa tốt, hỗ trợ xây dựng plugin và công cụ tùy biến cho nhu cầu quản lý gói nâng cao.

Những lệnh cơ bản của DNF
Cú pháp tổng quát của lệnh DNF được sử dụng dưới dạng:
sudo dnf [tùy_chọn] [lệnh] [tên_gói(hoặc_nhóm)]Các lệnh quản lý gói thường dùng:
| Lệnh | Mô tả | Ví dụ |
| install | Cài đặt một gói phần mềm mới vào hệ thống | sudo dnf install httpd |
| update | Cập nhật tất cả các gói hiện có lên phiên bản mới hơn | sudo dnf update |
| remove | Gỡ bỏ một gói phần mềm đã cài đặt khỏi hệ thống | sudo dnf remove nano |
| check-update | Kiểm tra các bản cập nhật khả dụng cho gói nhưng không thực hiện cài đặt | dnf check-update |
| upgrade | Nâng cấp các gói lên phiên bản mới (tương tự update). | sudo dnf upgrade |
| reinstall | Cài đặt lại một gói đã có trên hệ thống. | sudo dnf reinstall mariadb-server |
| search | Tìm kiếm tên và mô tả gói theo từ khóa | dnf search python3 |
| list | Liệt kê các gói (đã cài đặt hoặc có sẵn) | dnf list installed |
| info | Hiển thị thông tin chi tiết về một gói | dnf info kernel |
| provides | Tìm gói cung cấp một tập tin/chức năng cụ thể | dnf provides /etc/hosts |
Lưu ý
Bạn nên sử dụng sudo với các lệnh làm thay đổi trạng thái hệ thống như install, update, remove, upgrade, reinstall,… để đảm bảo có đủ quyền thực thi.

Một số lệnh DNF hữu ích cần nắm
Quản lý nhóm gói (Groups)
Nhóm gói cho phép triển khai nhanh một tập hợp phần mềm phục vụ một mục đích cụ thể, chẳng hạn như môi trường Desktop hoặc bộ công cụ phát triển Web.
Liệt kê các nhóm có sẵn:
dnf group listXem chi tiết thông tin của một nhóm:
dnf group info "Development Tools"Cài đặt toàn bộ gói trong một nhóm:
sudo dnf group install "Development Tools"Quản lý Repository (Kho lưu trữ)
Repository là nguồn chứa gói phần mềm mà DNF sử dụng để tìm kiếm và tải xuống với các tệp cấu hình được đặt tại thư mục /etc/yum.repos.d/.
Liệt kê các repository đang hoạt động:
dnf repolistLiệt kê tất cả repository, bao gồm cả những repo đang bị vô hiệu hóa:
dnf repolist allBật/tắt repository tạm thời trong một lệnh:
- Chỉ bật trong một lệnh: sudo dnf install [gói] –enablerepo=epel
- Chỉ tắt trong một lệnh: sudo dnf install [gói] –disablerepo=AppStream
Lịch sử giao dịch (History)
DNF lưu lại toàn bộ các giao dịch cài đặt, gỡ bỏ và cập nhật, giúp quản trị viên dễ dàng kiểm tra hoặc hoàn tác các thay đổi khi cần.
Xem danh sách lịch sử:
dnf historyHoàn tác (rollback) một giao dịch:
sudo dnf history undo [ID_giao_dịch]Ví dụ hoàn tác giao dịch số 5:
sudo dnf history undo 5
Thực hiện lại (redo) một giao dịch:
sudo dnf history redo [ID_giao_dịch]Một số tùy chọn hữu ích khác
| Tùy chọn | Mô tả | Ví dụ |
| -y | Tự động chấp nhận tất cả câu hỏi xác nhận (tương đương luôn trả lời yes) | sudo dnf install tmux -y |
| –exclude | Loại trừ một hoặc nhiều gói ra khỏi giao dịch đang thực hiện | sudo dnf update –exclude=kernel* |
| clean all | Xóa bộ nhớ đệm của repository và các dữ liệu tạm liên quan | sudo dnf clean all |
| autoremove | Gỡ bỏ các gói phụ thuộc không còn được gói nào khác sử dụng | sudo dnf autoremove |
Câu hỏi thường gặp
DNF có dùng thay YUM trên mọi hệ thống không?
Không, chỉ các bản phân phối Linux dựa trên RPM có hỗ trợ DNF (tích hợp sẵn hoặc có gói tương thích) mới có thể thay thế YUM hoàn toàn.
DNF có hỗ trợ proxy không?
Có, DNF cho phép cấu hình proxy trong file cấu hình hoặc qua biến môi trường để tải gói qua máy chủ trung gian.
DNF có khóa phiên bản gói được không?
Có, bạn có thể cấu hình để loại trừ hoặc giữ nguyên phiên bản một số gói, tránh chúng bị nâng cấp ngoài ý muốn.
DNF là nền tảng quản lý gói hiện đại cho hệ sinh thái Linux dùng RPM, giúp quy trình cài đặt, cập nhật và kiểm soát phần mềm trở nên nhất quán, rõ ràng và dễ bảo trì hơn. Nắm vững cú pháp lệnh, cách làm việc với nhóm gói, repository, lịch sử giao dịch và các tùy chọn bổ trợ sẽ giúp khai thác tối đa sức mạnh của DNF trong quản trị hệ thống từ môi trường thử nghiệm đến sản xuất.




