Cách quản lý gói CentOS 8 với trình quản lý gói dnf

Tác giả Network Engineer, T.Một 17, 2022, 01:08:57 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách quản lý gói CentOS 8 với trình quản lý gói dnf


DNF chỉ đơn giản là trình quản lý gói thế hệ tiếp theo (sau YUM) cho các bản phân phối Linux dựa trên RPM như CentOS, RHEL, Fedora, v.v. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng trình quản lý gói DNF để quản lý gói CentOS 8. Vậy chúng ta hãy bắt đầu.

1. Cập nhật bộ nhớ cache của kho lưu trữ gói

Bạn có thể cập nhật bộ đệm ẩn của kho gói DNF bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo dnf makecache
Bộ nhớ cache của kho lưu trữ gói DNF sẽ được cập nhật.


2. Liệt kê kho lưu trữ gói được kích hoạt và vô hiệu hóa

Bạn có thể liệt kê tất cả kho lưu trữ gói được kích hoạt và vô hiệu có sẵn trên máy CentOS 8 của mình bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo dnf repolist --all
Như bạn có thể thấy, tất cả các kho lưu trữ gói được kích hoạt và vô hiệu hóa đều được hiển thị. Trên cột id kho, bạn có Id kho lưu trữ mà bạn có thể sử dụng với tùy chọn DNF –repo. Trong cột trạng thái, bạn có thể xem kho lưu trữ nào được kích hoạt và có bao nhiêu gói mà kho lưu trữ cụ thể đó có.


Theo cách tương tự, bạn chỉ có thể liệt kê các kho lưu trữ đã bật như sau:

Mã nguồn [Chọn]
$ sudo dnf repolist --enabled

Theo cách tương tự, bạn chỉ có thể liệt kê các kho lưu trữ bị vô hiệu hóa như sau:

Mã nguồn [Chọn]
$ sudo dnf repolist --disabled

3. Liệt kê tất cả các gói có sẵn

Bạn có thể liệt kê tất cả các gói trong tất cả các kho lưu trữ gói bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo dnf list --all
Danh sách rất dài.


Như bạn có thể thấy, tổng cộng có khoảng 6419 gói.

Mã nguồn [Chọn]
$ sudo dnf list | wc --lines

Bạn có thể sử dụng grep hoặc egrep để tìm kiếm các gói trong danh sách như sau.

Mã nguồn [Chọn]
$ sudo dnf list | egrep searchTerm
Ở đây, chúng ta đã tìm kiếm gói cây như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Mã nguồn [Chọn]
$ sudo dnf list | egrep ^tree

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

Bạn chỉ có thể liệt kê tất cả các gói đã cài đặt như sau:

Mã nguồn [Chọn]
$ sudo dnf list --installed
Danh sách cũng rất dài.


5. Tìm kiếm các Gói

Bạn có thể tìm kiếm các gói theo tên gói và tóm tắt của chúng như sau:

Mã nguồn [Chọn]
$ sudo dnf search "Programming Language"
Kết quả tìm kiếm sẽ hiển thị tất cả các gói phù hợp. Bạn có thể chọn những gì để cài đặt từ đây.


6. Tìm kiếm các Gói trong Kho lưu trữ cụ thể

Bạn có thể tìm kiếm các gói theo tên gói của chúng như sau:

Mã nguồn [Chọn]
$ sudo dnf repoquery *kvm*
Như bạn thấy, tất cả các gói có kvm trong tên gói đều được liệt kê.


Bạn cũng có thể sử dụng tùy chọn –repo để xác định kho lưu trữ gói nào cần tìm kiếm như sau:

Mã nguồn [Chọn]
$ sudo dnf repoquery *centos* >--repo extras

Mã nguồn [Chọn]
$ sudo dnf repoquery *centos* --repo BaseOS

Như bạn có thể thấy, hai truy vấn tìm kiếm trả về các kết quả khác nhau vì chúng đến từ kho lưu trữ gói khác nhau.

7. Tìm kiếm các Gói cung cấp tập tin cụ thể

Giả sử, bạn cần một tập tin hoặc lệnh nhưng bạn không biết phải cài đặt gói nào. Bạn có thể tìm kiếm theo đường dẫn toàn bộ hoặc một phần tập tin để tìm tên gói như sau:

Mã nguồn [Chọn]
$ sudo dnf provides */ifconfig
Như bạn có thể thấy, net-tools là gói cung cấp lệnh /usr/sbin/ifconfig


Bạn có thể tìm thấy tên gói cung cấp lệnh cây như sau:

Mã nguồn [Chọn]
$ sudo dnf provides */bin/tree

Bạn cũng có thể tìm kiếm các gói cung cấp tập tin thư viện cụ thể như sau:

Mã nguồn [Chọn]
$ sudo dnf provides */libssl.so*
Như bạn có thể thấy, tên gói và gói cung cấp phiên bản thư viện nào được liệt kê.


8. Tìm hiểu thêm về các Gói

Bạn có thể tìm hiểu thêm về một gói như sau:

Mã nguồn [Chọn]
$ sudo dnf info tree
Như bạn có thể thấy, phiên bản gói, tóm tắt, mô tả, kích thước, thông tin kho lưu trữ và nhiều thông tin khác được liệt kê.


9. Cài đặt Gói

Bạn có thể cài đặt một gói, giả sử httpd như sau:

Mã nguồn [Chọn]
$ sudo dnf install httpd
Nó sẽ hiển thị cho bạn những phụ thuộc nào nó sẽ cài đặt, tổng số gói nó cần tải xuống, tổng kích thước tải xuống, tổng kích thước sau khi cài đặt, v.v.

Để xác nhận cài đặt, nhấn Y rồi nhấn <Enter>


Gói này sẽ được cài đặt.


10. Cài đặt lại các gói

Bạn có thể cài đặt lại một gói như sau:

Mã nguồn [Chọn]
$ sudo dnf reinstall httpd
Bây giờ, nhấn Y rồi nhấn <Enter> để xác nhận cài đặt lại.


Gói này sẽ được cài đặt lại.


11. Loại bỏ các gói

Bạn có thể xóa một gói như sau:

Mã nguồn [Chọn]
$ sudo dnf remove httpd
Nó sẽ cho bạn biết những gói phụ thuộc nào sẽ bị loại bỏ, bao nhiêu gói sẽ bị xóa và bao nhiêu dung lượng ổ đĩa sẽ được giải phóng.

Để xác nhận việc xóa, nhấn Y rồi nhấn <Enter>


Gói cùng với đó sẽ bị loại bỏ tất cả các phụ thuộc của nó.


12. Thực hiện nâng cấp hệ thống

Bạn có thể kiểm tra xem có các bản cập nhật phần mềm hay không bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo dnf check-update
Nếu có bất kỳ bản cập nhật phần mềm nào, nó sẽ được liệt kê.


Bạn có thể thực hiện cập nhật phần mềm tối thiểu bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo dnf upgrade-minimal
Bản cập nhật phần mềm tối thiểu sẽ chỉ cài đặt các bản vá bảo mật tuyệt đối bắt buộc.

Tại thời điểm này, chúng ta không có bất kỳ bản nâng cấp nào.


Để cập nhật toàn bộ hệ thống, hãy chạy lệnh sau:

Mã nguồn [Chọn]
$ sudo dnf upgrade
Nó sẽ hiển thị cho bạn tóm tắt về những gói nào sẽ được nâng cấp, bao nhiêu gói sẽ được cài đặt, bao nhiêu gói sẽ được nâng cấp, tổng dung lượng tải xuống, v.v.

Để xác nhận nâng cấp hệ thống, nhấn Y rồi nhấn <Enter>


Nó sẽ tải xuống và cài đặt các bản cập nhật phần mềm.

13. Xóa bộ nhớ đệm

Bạn có thể dọn dẹp bộ nhớ đệm của gói DNF bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo dnf clean all
Tất cả các bộ nhớ đệm có sẵn sẽ được loại bỏ.


14. Loại bỏ các gói không cần thiết

Bạn có thể xóa các gói không cần thiết nếu có để tiết kiệm dung lượng ổ đĩa như sau:

Mã nguồn [Chọn]
$ sudo dnf autoremove
Tại thời điểm này, chúng ta không có gói không cần thiết nào trên máy CentOS 8 của mình.


Vì vậy, về cơ bản đó là cách bạn sử dụng DNF để quản lý các gói trên CentOS 8. Nó rất giống với YUM. Cảm ơn đã đọc bài viết này và mình hy vọng nó hữu ích cho bạn.