DNF (Dandified YUM) là trình quản lý gói hiện đại được sử dụng trong các hệ điều hành Linux như Fedora, RHEL và CentOS để cài đặt, cập nhật và quản lý phần mềm. Với khả năng xử lý phụ thuộc tốt hơn, tốc độ nhanh và giao diện dòng lệnh thân thiện, DNF giúp người dùng quản lý hệ thống hiệu quả hơn. Trong bài viết này, mình sẽ cùng bạn tìm hiểu tổng quan về DNF Linux, cách hoạt động cũng như những tính năng nổi bật mà công cụ này mang lại.
Những điểm chính
- Khái niệm: Hiểu rõ DNF Linux là gì và vai trò của nó trong việc quản lý phần mềm trên các hệ điều hành như Fedora, RHEL hay CentOS.
- Lý do nên dùng DNF Linux: Biết được lý do tại sao DNF lại là trình quản lý gói ưu việt với khả năng xử lý phụ thuộc thông minh, hiệu suất tốt và giao diện dễ sử dụng.
- Cách cài đặt và quản lý gói: Nắm được cách sử dụng DNF để cài đặt phần mềm cũng như quản lý nhóm gói một cách hiệu quả, từ việc xem thông tin, cài đặt đến gỡ bỏ.
- Tìm kiếm và đồng bộ gói: Biết cách tìm kiếm các gói có sẵn, cập nhật cơ sở dữ liệu và làm việc với danh sách gói trong DNF.
- Cập nhật hệ thống: Hiểu cách nâng cấp các gói hệ thống bằng DNF để đảm bảo máy chủ luôn hoạt động ổn định và an toàn.
- Câu hỏi thường gặp: Giải đáp được các thắc mắc phổ biến khi sử dụng DNF, giúp người dùng tự tin hơn trong quá trình quản trị hệ thống.
DNF Linux là gì?
DNF (viết tắt của Dandified YUM) là một trình quản lý gói hiện đại dành cho các bản phân phối Linux sử dụng hệ thống quản lý gói RPM như Fedora, RHEL và CentOS. Nó được phát triển để thay thế YUM truyền thống, mang lại hiệu suất cao hơn, khả năng xử lý phụ thuộc thông minh hơn và giao diện dòng lệnh thân thiện hơn. Với DNF, bạn có thể dễ dàng cài đặt, cập nhật, tìm kiếm và gỡ bỏ các gói phần mềm trong hệ thống của mình.

Lý do nên dùng trình quản lý gói DNF Linux
DNF là công cụ quản lý gói mạnh mẽ, được thiết kế để khắc phục những hạn chế của hệ thống quản lý gói RPM truyền thống. Trong khi RPM yêu cầu người dùng tự đảm bảo các điều kiện tiên quyết trước khi cài đặt gói, DNF tự động xử lý các dependency cần thiết và giải quyết xung đột phần mềm, giúp quá trình cài đặt trở nên liền mạch và chính xác hơn.
Bên cạnh đó, DNF còn cung cấp nhiều tiện ích bổ sung hỗ trợ người dùng quản lý hệ thống hiệu quả hơn. Bạn có thể dễ dàng thêm các kho lưu trữ bên ngoài, tìm kiếm gói phần mềm từ xa, cũng như thực hiện các thao tác khôi phục hoặc dọn dẹp hệ thống khi cần thiết. Với những ưu điểm này, DNF trở thành lựa chọn lý tưởng cho các hệ điều hành như Fedora, CentOS Stream và RHEL, nơi mà sự ổn định và tính linh hoạt trong quản lý phần mềm được đặt lên hàng đầu.

Cách cài đặt gói bằng DNF Linux
Cài đặt gói là chức năng cơ bản và thường được sử dụng nhất trong bất kỳ trình quản lý gói nào, bao gồm cả DNF. Để cài đặt một gói phần mềm từ kho lưu trữ chính thức, bạn chỉ cần sử dụng lệnh sau:
sudo dnf install nano

Lệnh install có thể đi kèm với nhiều tùy chọn (flag) để điều chỉnh hành vi mặc định. Ví dụ, nếu bạn không muốn DNF tự động cài đặt các “Weak Dependencies”, có thể thêm tùy chọn sau:
sudo dnf install nano --setopt=install_weak_deps=False
Ngoài việc cài đặt trực tiếp từ kho lưu trữ, DNF cũng hỗ trợ tải xuống file .rpm về máy để cài đặt sau – điều này rất hữu ích khi bạn cần thiết lập các hệ thống ngoại tuyến:
sudo dnf download emacs
Sau khi có file .rpm, bạn có thể sử dụng lệnh install để cài đặt nó:
sudo dnf install ~/your-package.rpm
Việc cài đặt theo cách này giúp DNF tự động xử lý các dependency cho các gói không đến từ kho lưu trữ chính thức. Trong một số trường hợp, bạn có thể muốn cài đặt lại một gói đã có trên hệ thống để khắc phục lỗi hoặc làm mới cài đặt. DNF hỗ trợ điều này với lệnh:
sudo dnf reinstall nano
Lệnh reinstall cũng hỗ trợ một số tùy chọn, chẳng hạn như:
sudo dnf reinstall nano --allowerasing
Tùy chọn –allowerasing cho phép DNF xóa các gói gây xung đột để quá trình cài đặt lại diễn ra trơn tru. Đây là giải pháp hiệu quả khi bạn cần xử lý các lỗi phát sinh từ các dependency bị lỗi hoặc sai lệch.
Cách xử lý nhóm gói trong DNF Linux
DNF hỗ trợ tính năng nhóm gói (group packages), cho phép người dùng cài đặt hoặc quản lý một tập hợp các phần mềm liên quan đến cùng một mục đích như “Editors”, “Development Tools” hay “Server with GUI”. Điều này đặc biệt hữu ích khi bạn muốn thiết lập một môi trường hệ thống đồng bộ, chẳng hạn như một máy trạm làm việc hoặc một máy chủ ứng dụng.
1. Xem danh sách các nhóm gói có sẵn
Để hiển thị toàn bộ các nhóm gói mà hệ thống hỗ trợ, bạn có thể sử dụng lệnh sau:
dnf group list
Lệnh này sẽ phân loại nhóm gói thành các danh mục như “Installed Groups”, “Available Environment Groups” và “Available Groups”.
2. Kiểm tra thông tin chi tiết của nhóm gói
Nếu muốn xem các gói phần mềm bên trong một nhóm cụ thể, bạn hãy sử dụng lệnh:
dnf group info <tên_nhóm>
Ví dụ:
dnf group info Editors
Lệnh này sẽ hiển thị mô tả nhóm, các gói bắt buộc và tùy chọn đi kèm.
3. Cài đặt nhóm gói
Bạn có thể cài đặt một nhóm gói bằng lệnh sau:
sudo dnf group install <tên_nhóm>
Ví dụ:
sudo dnf group install Editors
Lệnh này sẽ cài đặt toàn bộ gói thuộc nhóm “Editors”, giúp bạn tiết kiệm thời gian thay vì cài từng gói một.
4. Gỡ bỏ nhóm gói
Khi không còn cần thiết, bạn cũng có thể xóa toàn bộ một nhóm gói khỏi hệ thống bằng lệnh:
sudo dnf group remove <tên_nhóm>
Ví dụ:
sudo dnf group remove Editors
Lệnh trên sẽ gỡ bỏ tất cả các gói đã được cài đặt bởi nhóm “Editors”, giúp hệ thống gọn nhẹ hơn.
Cách tìm gói có sẵn trong DNF Linux
Một trong những tính năng quan trọng của trình quản lý gói là khả năng tìm kiếm các phần mềm có sẵn trong kho lưu trữ từ xa. Với DNF, bạn có thể dễ dàng tìm kiếm bằng cách sử dụng lệnh con search
. Ví dụ, để tìm gói có tên hoặc liên quan đến “nano”, bạn dùng lệnh:
dnf search nano
Theo mặc định, DNF sẽ so khớp truy vấn tìm kiếm với cả tên gói và phần mô tả ngắn của gói. Nếu muốn tìm kiếm kỹ hơn, bao gồm tất cả các trường siêu dữ liệu, bạn hãy thêm flag --all
vào lệnh:
dnf search --all nano
Ngoài ra, DNF còn cung cấp một lệnh phụ là repoquery
, cho phép tìm kiếm các gói và hiển thị kết quả ở định dạng NEVRA (Name, Epoch, Version, Release, Architecture). Đây là công cụ rất hữu ích nếu bạn cần tạo script tự động cài đặt các gói cụ thể. Ví dụ, để liệt kê tất cả các gói “emacs” có sẵn trên Fedora 40, bạn chạy:
dnf repoquery emacs
Lệnh repoquery
còn hỗ trợ các tùy chọn lọc bổ sung giúp bạn tùy chỉnh kết quả tìm kiếm. Chẳng hạn, flag --installed
chỉ hiện các gói đã được cài đặt trên hệ thống, còn --depends
sẽ liệt kê các phụ thuộc (dependencies) của gói đó:
dnf repoquery --installed --depends emacs
Cách tìm nạp danh sách gói trong DNF Linux
Lệnh con list
trong DNF là một công cụ linh hoạt giúp bạn duyệt qua danh sách các gói phần mềm có sẵn, bao gồm cả những gói đã được cài đặt trên máy cục bộ và các gói từ kho lưu trữ từ xa. Ví dụ, để liệt kê tất cả các gói hiện đang được cài đặt trên hệ thống, bạn dùng lệnh:
dnf list --installed
Ngoài ra, dnf list
còn hỗ trợ nhiều tùy chọn lọc hữu ích. Ví dụ, flag --recent
sẽ hiển thị các gói mới nhất có trên các kho lưu trữ từ xa:
dnf list --recent
Bạn cũng có thể kiểm tra nhanh các bản nâng cấp có sẵn cho hệ thống bằng cách sử dụng:
dnf list --upgrades
Đặc biệt, dnf list
còn hỗ trợ trong việc quản lý các gói phụ thuộc không cần thiết (dependency treo) bằng flag --autoremove
, giúp bạn liệt kê và dễ dàng dọn dẹp các gói thừa trên hệ thống:
dnf list --autoremove
Nhờ các tùy chọn này, lệnh list
trở thành công cụ thiết yếu giúp bạn quản lý và kiểm soát các gói phần mềm một cách hiệu quả trên hệ thống Linux sử dụng DNF.
Hướng dẫn nâng cấp các gói hệ thống
Với DNF, việc nâng cấp tất cả các gói đã cài đặt trên hệ thống trở nên rất đơn giản và nhanh chóng nhờ lệnh phụ upgrade
. Khi chạy lệnh này, DNF sẽ tự động tải và cài đặt phiên bản mới nhất của tất cả các gói hiện có trên hệ thống:
sudo dnf upgrade
Nếu bạn chỉ muốn kiểm tra xem có bản cập nhật nào có sẵn hay không mà chưa muốn thực hiện nâng cấp ngay, có thể dùng lệnh:
sudo dnf check-update
DNF cũng hỗ trợ chế độ nâng cấp bảo thủ (minimal upgrade), trong đó chỉ các bản vá bảo mật và sửa lỗi quan trọng mới được cài đặt. Điều này rất hữu ích khi bạn cần giữ sự ổn định cho các dịch vụ quan trọng mà không muốn cập nhật toàn bộ phần mềm một cách đột ngột:
sudo dnf upgrade-minimal
Ngoài ra, DNF cho phép nâng cấp hoặc hạ cấp từng gói riêng lẻ bằng cách chỉ định tên gói kèm phiên bản cụ thể. Ví dụ, để nâng cấp GNU Emacs lên phiên bản 29.3 trên Fedora 40, bạn có thể dùng:
sudo dnf upgrade emacs-1:29.3-6.fc40.x86_64
Tương tự, DNF cũng hỗ trợ hạ cấp gói về phiên bản thấp hơn nếu phiên bản đó vẫn có sẵn trong kho lưu trữ:
sudo dnf downgrade emacs
Để tăng cường bảo mật, DNF tích hợp tính năng nâng cấp dựa trên các Security Advisories (thông báo bảo mật). Bạn có thể sử dụng các flag --advisory
hoặc --cve
để chỉ nâng cấp những gói liên quan đến các lỗ hổng bảo mật cụ thể. Ví dụ, lệnh dưới đây nâng cấp thư viện xz để xử lý một lỗ hổng bảo mật nghiêm trọng:
sudo dnf upgrade --refresh --advisory=FEDORA-2024-d02c7bb266
Vietnix – Nhà cung cấp dịch vụ lưu trữ chất lượng cao, bảo mật tốt
Vietnix là nhà cung cấp dịch vụ thuê VPS chất lượng cao với hạ tầng mạnh mẽ, 100% ổ cứng SSD, đảm bảo tốc độ truy cập nhanh và ổn định. Dịch vụ VPS Linux tại đây mang lại hiệu suất cao, khả năng tùy chỉnh linh hoạt cùng hệ thống backup tự động giúp bảo vệ dữ liệu an toàn. Với cơ chế phân quyền nghiêm ngặt, Vietnix cam kết mang đến giải pháp lưu trữ bảo mật, ổn định và tối ưu chi phí cho khách hàng. Liên hệ ngay để được tư vấn chi tiết!
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Câu hỏi thường gặp
DNF có các plugin nào hữu ích mà người quản trị Linux nên biết để mở rộng tính năng?
DNF có các plugin hữu ích như versionlock (khóa phiên bản gói), download (tải gói mà không cài), config-manager (quản lý repository), needs-restarting (kiểm tra dịch vụ cần khởi động lại) và automatic-idle-remove (tự động gỡ gói không cần thiết). Các plugin này giúp quản trị Linux linh hoạt và hiệu quả hơn. Bạn có thể cài đặt bằng lệnh: sudo dnf install dnf-PLUGIN_NAME (với PLUGIN_NAME
là tên plugin).
Có cách nào để DNF tự động dọn dẹp cache và gói cũ không?
DNF cho phép tự động dọn dẹp cache và gói cũ bằng các lệnh như sudo dnf clean all
để xóa cache, sudo dnf autoremove
để gỡ gói không còn dùng và có thể thiết lập cronjob để chạy định kỳ. Ngoài ra, trong file /etc/dnf/dnf.conf
có thể cấu hình max_cache_age
để giới hạn thời gian lưu cache, giúp hệ thống luôn gọn nhẹ và tiết kiệm dung lượng.
Lời kết
Tóm lại, DNF là công cụ quản lý gói mạnh mẽ, linh hoạt và tiện lợi trên các hệ thống Linux hiện đại. Với khả năng cài đặt, nâng cấp, tìm kiếm và dọn dẹp gói hiệu quả, DNF giúp người quản trị dễ dàng duy trì và tối ưu hệ thống của mình. Hiểu rõ cách sử dụng DNF không chỉ giúp tiết kiệm thời gian mà còn nâng cao hiệu suất vận hành máy chủ Linux của bạn. Hy vọng bài viết này đã cung cấp cho bạn cái nhìn tổng quan hữu ích về DNF và giúp bạn tự tin hơn khi quản lý các gói phần mềm trên Linux.