DNF aka YUM pha loãng là một Trình quản lý gói thế hệ tiếp theo cho RPM dựa trên Phân phối. Nó được giới thiệu lần đầu trong Fedora 18 và nó đã thay thế tiện ích YUM trong phiên bản Fedora 22 gần đây.

DNF nhằm mục đích cải thiện các nút thắt của YUM viz., Hiệu suất, Khả năng sử dụng bộ nhớ, Độ phân giải phụ thuộc, Tốc độ và rất nhiều yếu tố khác. DNF thực hiện Quản lý gói sử dụng thư viện RPM, libsolv và hawkey. Mặc dù nó không được cài đặt sẵn trong CentOS và RHEL 7, bạn có thể yum, dnf và sử dụng nó cùng với yum.

Bạn có thể muốn đọc thêm về DNF:

  1. Lý do đằng sau việc thay thế Yum bằng DNF

Bản phát hành ổn định mới nhất của DNF là 1.0 (tại thời điểm viết bài) được phát hành vào ngày 11 tháng 5 năm 2015. Nó (và tất cả các phiên bản trước của DNF) hầu hết được viết bằng Python và được phát hành theo Giấy phép GPL v2.

Cài đặt DNF

DNF không có sẵn trong kho lưu trữ mặc định của RHEL / CentOS 7. Tuy nhiên Fedora 22 xuất xưởng với DNF được triển khai chính thức.

Để cài đặt DNF trên RHEL / CentOS hệ thống, trước tiên bạn cần cài đặt và kích hoạt kho lưu trữ epel-release.

 # yum install epel-release
OR
# yum install epel-release -y

Mặc dù việc sử dụng ‘-y’ với yum là không hợp đạo đức vì bạn nên xem những gì đang được cài đặt trong hệ thống của mình. Tuy nhiên, nếu điều này không thành vấn đề, bạn có thể sử dụng ‘-y’ với yum để cài đặt mọi thứ tự động mà không cần sự can thiệp của người dùng.

Tiếp theo, cài đặt gói DNF bằng lệnh yum từ epel-release kho.

 # yum install dnf

Sau khi cài đặt dnf thành công, đã đến lúc hiển thị cho bạn 27 ví dụ sử dụng thực tế của các lệnh dnf sẽ giúp bạn quản lý các gói trong phân phối dựa trên RPM một cách dễ dàng và hiệu quả.

1. Kiểm tra phiên bản DNF

Kiểm tra phiên bản DNF được cài đặt trên Hệ thống của bạn.

 # dnf --version

Kiểm tra phiên bản DNF

2. Liệt kê các kho lưu trữ DNF đã bật

Tùy chọn ‘repolist‘với lệnh dnf, sẽ hiển thị tất cả các kho được kích hoạt trong hệ thống của bạn.

 # dnf repolist

Kiểm tra tất cả các kho lưu trữ đã bật

3. Liệt kê tất cả các Kho lưu trữ DNF được Bật và Tắt

Tùy chọn ‘repolist all‘sẽ in tất cả các kho lưu trữ được kích hoạt / vô hiệu hóa trong hệ thống của bạn.

 # dnf repolist all

Liệt kê tất cả kho lưu trữ đã bật / tắt

4. Liệt kê tất cả các Gói Có sẵn và Đã Cài đặt bằng DNF

Lệnh dnf list sẽ liệt kê tất cả các gói có sẵn từ tất cả các kho và các gói đã cài đặt trên hệ thống Linux của bạn.

 # dnf list

Liệt kê tất cả các gói sử dụng DNF

5. Liệt kê tất cả các Gói đã cài đặt bằng DNF

Trong khi danh sách dnf hiển thị tất cả các gói có sẵn / đã cài đặt từ tất cả các kho. Tuy nhiên, bạn có tùy chọn chỉ liệt kê các gói đã cài đặt bằng cách sử dụng danh sách tùy chọn đã cài đặt như hình dưới đây.

 # dnf list installed

Liệt kê tất cả các gói đã cài đặt

6. Liệt kê tất cả các Gói có sẵn bằng DNF

Tương tự, danh sách có sẵn, sẽ liệt kê tất cả các gói có sẵn để cài đặt từ tất cả các kho lưu trữ đã kích hoạt.

 # dnf list available

Liệt kê các gói có sẵn bằng DNF

7. Tìm kiếm một Gói bằng DNF

Nếu trong trường hợp đó, bạn không biết gì về gói mà bạn muốn cài đặt, trong tình huống như vậy, bạn có thể sử dụng ‘search‘với lệnh dnf để tìm kiếm gói phù hợp với từ hoặc chuỗi (ví dụ: nano).

 # dnf search nano

Gói tìm kiếm bằng Word

8. Xem cái gì Cung cấp một tệp / gói con?

Tùy chọn dnf cung cấp tìm tên của gói cung cấp tệp / gói con cụ thể. Ví dụ: nếu bạn muốn tìm những gì cung cấp ‘/ bin / bash’ trên hệ thống của bạn?

 # dnf provides /bin/bash

Tìm gói phụ của tệp

9. Nhận chi tiết của một gói bằng DNF

Giả sử bạn muốn biết thông tin của một gói trước khi cài đặt nó vào hệ thống, bạn có thể sử dụng thông tin chuyển đổi để nhận thông tin chi tiết về một gói (ví dụ nano) như bên dưới.

 # dnf info nano

Kiểm tra thông tin gói hàng với DNF

10. Cài đặt một Gói với DNF

Để cài đặt một gói có tên nano, chỉ cần chạy lệnh dưới đây, nó sẽ tự động giải quyết và cài đặt tất cả các phụ thuộc bắt buộc cho gói nano.

 # dnf install nano

Cài đặt Gói sử dụng DNF

11. Cập nhật gói bằng DNF

Bạn chỉ có thể cập nhật một gói cụ thể (ví dụ systemd) và để nguyên mọi thứ trên hệ thống.

 # dnf update systemd

Cập nhật một gói cụ thể

12. Kiểm tra các bản cập nhật hệ thống bằng DNF

Kiểm tra các bản cập nhật cho tất cả các gói hệ thống được cài đặt vào hệ thống một cách đơn giản.

 # dnf check-update

Kiểm tra cập nhật hệ thống

13. Cập nhật tất cả các gói hệ thống bằng DNF

Bạn có thể cập nhật toàn bộ hệ thống bao gồm tất cả các gói đã cài đặt bằng các lệnh sau.

 # dnf update
OR
# dnf upgrade

Cập nhật hệ thống

14. Xóa / Xóa gói bằng DNF

Để loại bỏ hoặc xóa bất kỳ gói không mong muốn nào (ví dụ như nano), bạn có thể sử dụng loại bỏ hoặc chuyển đổi xóa bằng lệnh dnf để xóa gói đó.

 # dnf remove nano
OR
# dnf erase nano

Xóa gói trong Linux

15. Loại bỏ các Gói trẻ mồ côi bằng cách sử dụng DNF

Những gói đã được cài đặt để đáp ứng sự phụ thuộc có thể vô dụng nếu không được các ứng dụng khác sử dụng. Để loại bỏ các gói mồ côi đó, hãy thực hiện lệnh dưới đây.

 # dnf autoremove

Xóa các gói trẻ mồ côi

16. Xóa các gói được lưu trong bộ nhớ cache bằng DNF

Rất nhiều lúc chúng ta gặp phải các tiêu đề lỗi thời và các giao dịch chưa hoàn thành dẫn đến lỗi khi thực thi dnf. Chúng tôi có thể làm sạch tất cả các gói và tiêu đề được lưu trong bộ nhớ cache có chứa thông tin gói từ xa chỉ bằng cách thực thi.

 # dnf clean all

Xóa bộ nhớ đệm DNF

17. Nhận trợ giúp về lệnh DNF cụ thể

Bạn có thể nhận được trợ giúp về bất kỳ lệnh dnf cụ thể nào (nói lau dọn) chỉ bằng cách thực hiện lệnh dưới đây.

 # dnf help clean

Nhận trợ giúp về lệnh DNF

18. Liệt kê tất cả các lệnh và tùy chọn DNF

Để liệt kê trợ giúp về tất cả các lệnh và tùy chọn dnf có sẵn, chỉ cần nhập.

 # dnf help

Nhận trợ giúp về các tùy chọn DNF

Bạn có thể gọi lịch sử dnf để xem danh sách các lệnh dnf đã được thực thi. Bằng cách này, bạn có thể biết những gì đã được cài đặt / gỡ bỏ với tem thời gian.

 # dnf history

Kiểm tra lịch sử DNF

20. Liệt kê tất cả các Gói nhóm

Lệnh dnf danh sách nhóm sẽ in tất cả các gói có sẵn hoặc đã cài đặt, nếu không có gì được đề cập, nó sẽ liệt kê tất cả các nhóm đã biết.

 # dnf grouplist

Liệt kê tất cả các gói nhóm

21. Cài đặt Gói nhóm bằng DNF

Để cài đặt một Nhóm các gói được gói lại với nhau dưới dạng gói nhóm (giả sử Phần mềm Giáo dục) đơn giản như.

 # dnf groupinstall 'Educational Software'

Cài đặt gói nhóm

22. Cập nhật gói nhóm

Hãy cập nhật Gói nhóm (giả sử Phần mềm Giáo dục) bằng cách thực hiện lệnh dưới đây.

 # dnf groupupdate 'Educational Software'

Cập nhật gói nhóm

23. Loại bỏ một gói nhóm

Chúng tôi có thể xóa Gói nhóm (giả sử Phần mềm Giáo dục) như.

 # dnf groupremove 'Educational Software'

Xóa gói nhóm

24. Cài đặt một gói từ kho lưu trữ cụ thể

DNF giúp bạn có thể cài đặt bất kỳ gói cụ thể nào (giả sử phpmyadmin) từ một repo (epel) đơn giản như,

 # dnf --enablerepo=epel install phpmyadmin

Cài đặt gói từ Repo cụ thể

25. Đồng bộ hóa các gói đã cài đặt thành bản phát hành ổn định

Lệnh dnf distro-sync sẽ cung cấp các tùy chọn cần thiết để đồng bộ hóa tất cả các gói đã cài đặt sang phiên bản ổn định gần đây nhất có sẵn từ bất kỳ kho lưu trữ được kích hoạt nào. Nếu không có gói nào được chọn, tất cả các gói đã cài đặt sẽ được đồng bộ hóa.

 # dnf distro-sync

Đồng bộ hóa các gói thành phiên bản ổn định

26. Cài đặt lại một gói

Lệnh dnf cài đặt lại nano sẽ cài đặt lại một gói đã được cài đặt (nói nano).

 # dnf reinstall nano

Cài đặt lại gói

27. Hạ cấp gói

Các tùy chọn hạ cấp sẽ hạ cấp gói có tên (ví dụ như acpid) xuống phiên bản thấp hơn nếu có thể.

 # dnf downgrade acpid
Đầu ra mẫu
 Using metadata from Wed May 20 12:44:59 2015
No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.

Quan sát của tôi: DNF không hạ cấp gói như nó được cho là. Nó cũng đã được báo cáo là lỗi.

Sự kết luận

DNF là trạng thái phía trên của trình quản lý gói nghệ thuật YUM. Tôi tin rằng nó có xu hướng thực hiện rất nhiều quá trình xử lý tự động, điều này sẽ không được nhiều Quản trị viên hệ thống Linux có kinh nghiệm ca ngợi. Ví dụ:

  1. bỏ qua không được DNF công nhận và không có giải pháp thay thế.
  2. Không có gì giống như ‘giải quyết’ tuy nhiên bạn có thể chạy dnf cung cấp.
  3. Không có ‘deplist’ để tìm sự phụ thuộc của gói.
  4. Bạn loại trừ một repo, có nghĩa là loại trừ áp dụng cho tất cả các hoạt động, không giống như yum chỉ loại trừ các repo đó tại thời điểm cài đặt và cập nhật, v.v.

Một số người dùng Linux không hài lòng với cách Hệ sinh thái Linux đang phát triển. Systemd đầu tiên đã loại bỏ init system v và bây giờ DNF sẽ thay thế YUM sớm hơn trong Fedora 22 và sau đó là RHEL và CentOS.

Bạn nghĩ sao? là các bản phân phối và toàn bộ hệ sinh thái Linux không định giá người dùng đó và đi ngược lại ý muốn của họ. Ngoài ra nó thường được nói trong ngành CNTT – Tại sao phải sửa chữa, Nếu không bị hỏng? , và cả init System V cũng như YUM đều không bị hỏng.

Trên đây là 27 lệnh ‘DNF’ (Fork of Yum) để quản lý gói RPM trong Linux. Nếu bạn có bất kỳ câu hỏi nào liên quan đến các bước nói trên, hãy 2error.net biết trong phần bình luận. 2error.net sẽ liên hệ với bạn để có giải pháp trong thời gian sớm nhất.