Quản lý gói CentOS 8 với DNF trên dòng lệnh

theanh

Administrator
Nhân viên
DNF là viết tắt của Dandified YUM là trình quản lý gói phần mềm cho các bản phân phối Linux dựa trên RPM. Nó được sử dụng để cài đặt, cập nhật và xóa các gói trong hệ điều hành Fedora/RHEL/CentOS. Đây là trình quản lý gói mặc định của Fedora 22, CentOS8 và RHEL8. DNF là phiên bản thế hệ tiếp theo của YUM và được dự định là phiên bản thay thế cho YUM trong các hệ thống dựa trên RPM. DNF mạnh mẽ và có các tính năng mạnh mẽ hơn những gì bạn sẽ tìm thấy trong yum. DNF giúp dễ dàng duy trì các nhóm gói và có khả năng tự động giải quyết các vấn đề phụ thuộc.

Trong hướng dẫn này, chúng tôi sẽ giải thích cách quản lý gói bằng DNF trên CentOS 8.

Yêu cầu​

  • Máy chủ chạy CentOS 8.
  • Mật khẩu gốc được thiết lập cho máy chủ của bạn.

Cài đặt DNF​

Theo mặc định, DNF được cài đặt sẵn trong hệ điều hành CentOS 8. Nếu chưa cài đặt, bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
yum install dnf
Tiếp theo, bạn có thể kiểm tra phiên bản DNF bằng lệnh sau:
Mã:
dnf --version
Bạn sẽ thấy đầu ra sau:
Mã:
4.0.9 Đã cài đặt: dnf-0:4.0.9.2-5.el8.noarch vào Thứ sáu ngày 04 tháng 10 năm 2019 05:27:09 AM GMT Được xây dựng: CentOS Buildsys  vào Thứ hai ngày 13 tháng 5 năm 2019 07:35:13 PM GMT Được cài đặt: rpm-0:4.14.2-9.el8.x86_64 vào Thứ sáu ngày 04 tháng 10 năm 2019 05:20:17 AM GMT Được xây dựng: CentOS Buildsys  vào Thứ Bảy, ngày 11 tháng 5 năm 2019 02:04:19 AM GMT

Liệt kê các gói đã cài đặt và có sẵn​

Bạn có thể liệt kê tất cả các gói đã cài đặt trên hệ thống của mình bằng lệnh sau:
Mã:
dnf list installed
Bạn sẽ thấy tất cả các gói đã cài đặt trong đầu ra sau:
Mã:
Các gói đã cài đặtNetworkManager.x86_64 1:1.14.0-14.el8 @anacondaNetworkManager-config-server.noarch 1:1.14.0-14.el8 @anacondaTrình quản lý mạng-libnm.x86_64 1:1.14.0-14.el8 @anacondaNetworkManager-team.x86_64 1:1.14.0-14.el8 @anacondaTrình quản lý mạng-tui.x86_64 1:1.14.0-14.el8 @anacondaGóiKit.x86_64 1.1.12-2.el8 @AppStreamGóiKit-glib.x86_64 1.1.12-2.el8 @AppStreamacl.x86_64 2.2.53-1.el8 @anacondaadcli.x86_64 0.8.2-2.el8 @anacondatại.x86_64 3.1.20-11.el8 @anacondaattr.x86_64 2.4.48-3.el8 @anacondakiểm toán.x86_64 3.0-0.10.20180831git0047a6c.el8 @anacondakiểm toán-libs.x86_64 3.0-0.10.20180831git0047a6c.el8 @anacondaauthselect.x86_64 1.0-13.el8 @anacondaauthselect-compat.x86_64 1.0-13.el8 @AppStreamauthselect-libs.x86_64 1.0-13.el8 @anacondaavahi-libs.x86_64 0.7-19.el8 @anacondabasesystem.noarch 11-5.el8 @anaconda
Bạn cũng có thể liệt kê tất cả các gói đã cài đặt và có sẵn bằng lệnh sau:
Mã:
dnf list
Bạn sẽ thấy kết quả sau:
Mã:
Kiểm tra hết hạn siêu dữ liệu lần cuối: 4 ngày, 22:47:10 trước vào thứ sáu ngày 04 tháng 10 năm 2019 02:14:39 AM EDT.Gói đã cài đặtNetworkManager.x86_64 1:1.14.0-14.el8 @anacondaNetworkManager-config-server.noarch 1:1.14.0-14.el8 @anacondaTrình quản lý mạng-libnm.x86_64 1:1.14.0-14.el8 @anacondaNetworkManager-team.x86_64 1:1.14.0-14.el8 @anacondaTrình quản lý mạng-tui.x86_64 1:1.14.0-14.el8 @anacondaGóiKit.x86_64 1.1.12-2.el8 @AppStreamGóiKit-glib.x86_64 1.1.12-2.el8 @AppStreamacl.x86_64 2.2.53-1.el8 @anacondaadcli.x86_64 0.8.2-2.el8 @anacondatại.x86_64 3.1.20-11.el8 @anacondaattr.x86_64 2.4.48-3.el8 @anacondakiểm toán.x86_64 3.0-0.10.20180831git0047a6c.el8 @anacondakiểm toán-libs.x86_64 3.0-0.10.20180831git0047a6c.el8 @anacondaauthselect.x86_64 1.0-13.el8 @anacondaauthselect-compat.x86_64 1.0-13.el8 @AppStreamauthselect-libs.x86_64 1.0-13.el8 @anacondaavahi-libs.x86_64 0.7-19.el8 @anaconda::
Bạn cũng có thể chỉ liệt kê các gói có sẵn bằng lệnh sau:
Mã:
dnf list available
Bạn sẽ thấy đầu ra sau:
Mã:
Kiểm tra hết hạn siêu dữ liệu lần cuối: 4 ngày, 22:48:21 trước vào thứ sáu ngày 04 tháng 10 năm 2019 02:14:39 AM EDT.Các gói có sẵnNguồn epel BackupPC.src 4.3.1-2.el8BackupPC.x86_64 4.3.1-2.el8 epelNguồn epel BackupPC-XS.src 0.59-3.el8BackupPC-XS.x86_64 0.59-3.el8 epelBackupPC-XS-debuginfo.x86_64 0.59-3.el8 epel-debuginfoBackupPC-XS-debugsource.x86_64 0.59-3.el8 epel-debuginfoBackupPC-debuginfo.x86_64 4.3.1-2.el8 epel-debuginfoBackupPC-debugsource.x86_64 4.3.1-2.el8 epel-debuginfoCGSI-gSOAP.src 1.3.11-7.el8 epel-sourceCGSI-gSOAP.x86_64 1.3.11-7.el8 epelCGSI-gSOAP-debuginfo.x86_64 1.3.11-7.el8 epel-debuginfoCGSI-gSOAP-debugsource.x86_64 1.3.11-7.el8 epel-debuginfoCGSI-gSOAP-devel.x86_64 1.3.11-7.el8 epel

Tìm kiếm và cài đặt gói​

Bạn có thể tìm kiếm bất kỳ gói nào bạn muốn cài đặt bằng lệnh sau:
Mã:
dnf search httpd
Bạn sẽ thấy kết quả đầu ra sau:
Mã:
================================================================== Tên khớp chính xác: httpd =========================================================httpd.x86_64 : Máy chủ HTTP Apache=================================================================== Tên & Tóm tắt Đã khớp: httpd ========================================================centos-logos-httpd.noarch : Biểu tượng và hình ảnh liên quan đến CentOS được httpd sử dụngkeycloak-httpd-client-install.noarch : Công cụ để cấu hình Apache HTTPD làm máy khách Keycloakpython3-keycloak-httpd-client-install.noarch : Công cụ để cấu hình Apache HTTPD làm máy khách Keycloak============================================================================ Tên Đã khớp: httpd ==============================================================httpd-devel.x86_64 : Giao diện phát triển cho máy chủ Apache HTTPhttpd-tools.x86_64 : Công cụ sử dụng với Máy chủ Apache HTTPhttpd-manual.noarch : Tài liệu cho máy chủ Apache HTTPlibmicrohttpd.i686 : Thư viện nhẹ để nhúng máy chủ web vào ứng dụnglibmicrohttpd.x86_64 : Thư viện nhẹ để nhúng máy chủ web vào ứng dụnghttpd-filesystem.noarch : Bố cục thư mục cơ bản cho máy chủ Apache HTTP========================================================================================== Tóm tắt Đã khớp: httpd ==========================================================mod_dav_svn.x86_64 : Mô-đun Apache httpd cho máy chủ Subversionmod_auth_mellon.x86_64 : Mô-đun xác thực SAML 2.0 cho Máy chủ Apache Httpd
Bây giờ bạn có thể cài đặt gói httpd bằng lệnh sau:
Mã:
dnf install httpd
Để cài đặt lại gói httpd, hãy chạy lệnh sau:
Mã:
dnf reinstall httpd
Trong một số trường hợp, bạn sẽ cần tải xuống các gói mà không cần cài đặt. Bạn có thể tải xuống một gói cụ thể bằng lệnh sau:
Mã:
dnf download httpd
Bạn cũng có thể xem thông tin chi tiết về gói httpd bằng lệnh sau:
Mã:
dnf info httpd
Bạn sẽ nhận được kết quả sau:
Mã:
Kiểm tra hết hạn siêu dữ liệu lần cuối: 0:01:02 trước vào thứ tư ngày 09 tháng 10 năm 2019 01:07:23 AM EDT.Các gói có sẵnTên: httpdPhiên bản: 2.4.37Phiên bản phát hành: 11.module_el8.0.0+172+85fc1f40Arch: x86_64Kích thước: 1,7 MNguồn: httpd-2.4.37-11.module_el8.0.0+172+85fc1f40.src.rpmRepo: AppStreamTóm tắt: Máy chủ HTTP ApacheURL: https://httpd.apache.org/Giấy phép: ASL 2.0Mô tả: Máy chủ HTTP Apache là một máy chủ web mạnh mẽ, hiệu quả và có thể mở rộng.

Cập nhật các gói hệ thống​

Trước tiên, bạn có thể kiểm tra các bản cập nhật cho tất cả các gói hệ thống trên hệ thống của mình bằng lệnh sau:
Mã:
dnf check-update
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
Kiểm tra thời hạn siêu dữ liệu cuối cùng: 0:00:10 trước vào thứ tư ngày 09 tháng 10 năm 2019 01:10:16 AM EDT.bind-export-libs.x86_64 32:9.11.4-17.P2.el8_0.1 BaseOSbind-libs.x86_64 32:9.11.4-17.P2.el8_0.1 AppStreambind-libs-lite.x86_64 32:9.11.4-17.P2.el8_0.1 AppStreambind-license.noarch 32:9.11.4-17.P2.el8_0.1 AppStreambind-utils.x86_64 32:9.11.4-17.P2.el8_0.1 AppStreambpftool.x86_64 4.18.0-80.7.1.el8_0 BaseOSbuồng lái.x86_64 185.1-1.el8_0 BaseOSbuồng lái-bridge.x86_64 185.1-1.el8_0 BaseOSbuồng lái-system.noarch 185.1-1.el8_0 BaseOSbuồng lái-ws.x86_64 185.1-1.el8_0 BaseOSepel-release.noarch 8-6.el8 epelepel-release.src 8-6.el8 nguồn epeliptables.x86_64 1.8.2-9.el8_0.1 BaseOSiptables-ebtables.x86_64 1.8.2-9.el8_0.1 BaseOSiptables-libs.x86_64 1.8.2-9.el8_0.1 BaseOSkernel.x86_64 4.18.0-80.7.1.el8_0 BaseOSkernel-core.x86_64 4.18.0-80.7.1.el8_0 BaseOSkernel-modules.x86_64 4.18.0-80.7.1.el8_0 BaseOSkernel-tools.x86_64 4.18.0-80.7.1.el8_0 BaseOSkernel-tools-libs.x86_64 4.18.0-80.7.1.el8_0 BaseOS
Bây giờ bạn có thể cập nhật tất cả các gói được cài đặt trong hệ thống của mình bằng lệnh sau:
Mã:
dnf update
Để cập nhật gói cụ thể, hãy chạy lệnh sau:
Mã:
dnf update httpd

Liệt kê và cài đặt các gói nhóm​

Bạn có thể liệt kê tất cả các gói nhóm bằng lệnh lệnh sau:
Mã:
dnf grouplist
Bạn sẽ nhận được danh sách sau:
Mã:
Kiểm tra hết hạn siêu dữ liệu lần cuối: 0:03:42 trước vào thứ Tư ngày 09 tháng 10 năm 2019 01:10:16 AM EDT.Nhóm môi trường khả dụng: Máy chủ có GUI Cài đặt tối thiểu Trạm làm việc KDE Plasma Không gian làm việc Ảo hóa Máy chủ Hệ điều hành tùy chỉnhNhóm môi trường đã cài đặt: Máy chủNhóm đã cài đặt: Quản lý vùng chứa Quản lý không có giao diện người dùngNhóm khả dụng: Phát triển .NET Core Công cụ phát triển RPM Hỗ trợ thẻ thông minh Công cụ phát triển Công cụ quản trị đồ họa Khả năng tương thích UNIX cũ Máy chủ mạng Hỗ trợ khoa học Công cụ bảo mật Công cụ hệ thống Trình đóng gói Fedora
Bây giờ, hãy cài đặt gói Nhóm cụ thể bằng lệnh sau:
Mã:
dnf groupinstall 'Công cụ hệ thống'
Bạn cũng có thể cập nhật gói Nhóm bằng lệnh sau:
Mã:
dnf groupupdate 'System Tools'

Liệt kê các kho lưu trữ​

Bạn có thể liệt kê tất cả các kho lưu trữ bằng lệnh sau:
Mã:
dnf repolist all
Bạn sẽ thấy kết quả sau:
Mã:
Kiểm tra hết hạn siêu dữ liệu lần cuối: 0:10:39 trước vào thứ Tư ngày 09 tháng 10 năm 2019 01:10:16 AM EDT.repo id repo name statusAppStream CentOS-8 - AppStream enabled: 4.928AppStream-source CentOS-8 - AppStream Sources disabledBaseOS CentOS-8 - Base enabled: 2.713BaseOS-source CentOS-8 - BaseOS Sources disabledPowerTools CentOS-8 - PowerTools disabledbase-debuginfo CentOS-8 - Debuginfo disabledc8-media-AppStream CentOS-AppStream-8 - Media disabledc8-media-BaseOS CentOS-BaseOS-8 - Media disabledcentosplus CentOS-8 - Plus disabledcentosplus-source CentOS-8 - Plus Sources disabledcr CentOS-8 - cr disabled*epel Extra Packages for Enterprise Linux 8 - x86_64 enabled: 1.816*epel-debuginfo Extra Packages for Enterprise Linux 8 - x86_64 - Debug enabled: 1.187epel-playground Extra Packages for Enterprise Linux 8 - Sân chơi - x86_64 bị vô hiệu hóaepel-playground-debuginfo Các gói bổ sung cho Enterprise Linux 8 - Sân chơi - x86_64 - Gỡ lỗi bị vô hiệu hóaepel-playground-source Các gói bổ sung cho Enterprise Linux 8 - Sân chơi - x86_64 - Nguồn bị vô hiệu hóa*epel-source Các gói bổ sung cho Enterprise Linux 8 - x86_64 - Nguồn được bật: 792*epel-testing Các gói bổ sung cho Enterprise Linux 8 - Kiểm tra - x86_64 được bật: 538*epel-testing-debuginfo Các gói bổ sung cho Enterprise Linux 8 - Kiểm tra - x86_64 - Gỡ lỗi được bật: 347*epel-testing-source Các gói bổ sung cho Enterprise Linux 8 - Kiểm tra - x86_64 - Nguồn được bật: 216extras CentOS-8 - Extras được bật: 3extras-source CentOS-8 - Extras Source bị vô hiệu hóafasttrack CentOS-8 - fasttrack disabled
Bây giờ, chỉ liệt kê các kho lưu trữ được kích hoạt trên hệ thống bằng lệnh sau:
Mã:
dnf repolist
Bạn sẽ thấy đầu ra sau:
Mã:
Kiểm tra hết hạn siêu dữ liệu lần cuối: 0:12:14 trước vào thứ Tư ngày 09 tháng 10 năm 2019 01:10:16 AM EDT.repo id repo name statusAppStream CentOS-8 - AppStream 4.928BaseOS CentOS-8 - Base 2.713*epel Gói bổ sung cho Enterprise Linux 8 - x86_64 1.816*epel-debuginfo Gói bổ sung cho Enterprise Linux 8 - x86_64 - Gỡ lỗi 1.187*epel-source Gói bổ sung cho Enterprise Linux 8 - x86_64 - Nguồn 792*epel-testing Gói bổ sung cho Enterprise Linux 8 - Kiểm tra - x86_64 538*epel-testing-debuginfo Gói bổ sung cho Enterprise Linux 8 - Kiểm tra - x86_64 - Gỡ lỗi 347*epel-testing-source Gói bổ sung cho Enterprise Linux 8 - Kiểm tra - x86_64 - Nguồn 216extras CentOS-8 - Extras 3

Xóa gói​

Bạn có thể xóa bất kỳ gói không mong muốn nào khỏi hệ thống của mình bằng lệnh sau:
Mã:
dnf remove httpd
Tiếp theo, xóa các gói phụ thuộc không mong muốn được cài đặt với gói httpd bằng cách chạy lệnh sau:
Mã:
dnf autoremove
Bạn có thể xóa tất cả các gói được lưu trong bộ nhớ đệm bằng lệnh sau:
Mã:
dnf clean all
Bạn cũng có thể xóa gói nhóm bằng lệnh sau:
Mã:
dnf groupremove 'System Tools'

Kết luận​

Trong hướng dẫn trên, chúng ta đã tìm hiểu cách quản lý các gói bằng lệnh DNF trên CentOS 8. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên