Mọi thứ cần biết về trình quản lý gói DNF

Dandified Yum (DNF) là một giao diện người dùng quản lý gói mạnh mẽ dành cho các bản phân phối Linux dựa trên RPM. Bài viết sau đây sẽ chỉ cho bạn mọi thứ cần biết về trình quản lý gói DNF và các lệnh DNF khác nhau có thể sử dụng để quản lý các gói của mình.

Tại sao nên sử dụng trình quản lý gói DNF?

Nhiều bản phân phối Linux, chẳng hạn như Red Hat Enterprise Linux, CentOS Stream và Fedora Linux có kho lưu trữ riêng sử dụng file RPM Package Manager (RPM) để phân phối chương trình, tài liệu và thư viện. Đó là định dạng lưu trữ nén có thể chạy script, xác minh nội dung bên trong và lưu trữ siêu dữ liệu gói.

Một nhược điểm của RPM là nó không thể cài đặt gói trừ khi các điều kiện tiên quyết của nó có trong hệ thống. DNF thu hẹp khoảng cách này bằng cách tìm nạp các dependency cần thiết cho gói và giải quyết mọi xung đột phần mềm trong quá trình cài đặt.

Terminal hiển thị chi tiết về kho lưu trữ Fedora DNF.
Terminal hiển thị chi tiết về kho lưu trữ Fedora DNF.

Ngoài ra, DNF còn cung cấp các công cụ bổ sung để cài đặt và quản lý những gói trong hệ thống. Nó bao gồm khả năng thêm các kho lưu trữ bên ngoài, tìm kiếm nội dung từ xa, cũng như hỗ trợ khôi phục và dọn dẹp hệ thống thích hợp.

Cài đặt gói bằng DNF

Cài đặt gói là chức năng cơ bản của mọi trình quản lý gói. Để cài đặt gói từ xa trong DNF, hãy chạy dnf install theo sau là tên gói:

sudo dnf install nano
Màn hình cài đặt DNF
Màn hình cài đặt DNF

Lệnh install có một số flag cho phép thay đổi hành vi mặc định của nó. Ví dụ, có thể bao gồm --setopt=install_weak_deps=False để bỏ qua “Weak Dependencies” khi cài đặt một chương trình.

Terminal hiển thị màn hình cài đặt cho Emacs mà không có bất kỳ dependency nào.
Terminal hiển thị màn hình cài đặt cho Emacs mà không có bất kỳ dependency nào.

Tìm nạp và cài đặt file RPM bằng DNF

DNF cũng có thể tìm nạp các gói .rpm trống từ kho lưu trữ upstream. Điều này có thể hữu ích nếu bạn đang thiết lập một máy ngoại tuyến và muốn sideload các gói RPM vào máy đó.

sudo dnf download emacs

Bạn thậm chí có thể sử dụng lệnh install trên file .rpm để cài đặt nó vào máy. Làm điều này sẽ mang lại lợi ích của việc giải quyết dependency cho các gói không phải repo.

sudo dnf install ~/your-package.rpm
Terminal hiển thị quá trình cài đặt DNF cho các file RPM.
Terminal hiển thị quá trình cài đặt DNF cho các file RPM.

Cài đặt lại các gói hiện có

Hơn nữa, DNF có thể buộc cài đặt lại các chương trình trong máy hiện tại. Điều này có thể hữu ích nếu bạn gặp sự cố với gói hiện có và muốn đảm bảo rằng mình đã cài đặt gói đó đúng cách.

sudo dnf reinstall nano
Terminal hiển thị quá trình cài đặt lại GNU Nano trong DNF.
Terminal hiển thị quá trình cài đặt lại GNU Nano trong DNF.

Lệnh reinstall cũng có một số flag tùy chọn để sửa đổi hành vi của nó. Ví dụ, flag --allowerasing sẽ xóa mọi xung đột dependency tiềm ẩn ngay khi cài đặt lại chương trình.

Xử lý nhóm gói trong DNF

Nhóm gói là một tính năng DNF đặc biệt để cài đặt các chương trình xung quanh một chủ đề hoặc công cụ. Điều này có thể hữu ích nếu muốn thiết lập một bản build desktop nhất quán hoặc quản lý bộ sưu tập phần mềm.

Để xem các nhóm gói có sẵn cho hệ thống, hãy chạy lệnh sau:

dnf group list
Terminal hiển thị các nhóm gói DNF có sẵn cho Fedora 40.
Terminal hiển thị các nhóm gói DNF có sẵn cho Fedora 40.

Có thể kiểm tra nội dung của nhóm gói bằng cách chạy đối số info sau lệnh group. Ví dụ, chạy dnf groups info Editors sẽ in một mô tả ngắn về nhóm và các gói mà nhóm sẽ cài đặt.

Terminal hiển thị thông tin chi tiết về nhóm gói Editors trong DNF.
Terminal hiển thị thông tin chi tiết về nhóm gói Editors trong DNF.

Cài đặt và gỡ bỏ nhóm gói

Lệnh group cũng xử lý quá trình cài đặt riêng của nó. Chạy lệnh group với đối số install, sau đó cung cấp tên nhóm mà bạn muốn cho hệ thống của mình:

sudo dnf group install Editors
Terminal hiển thị lời nhắc cài đặt cho nhóm gói Editors.
Terminal hiển thị lời nhắc cài đặt cho nhóm gói Editors.

Để xóa toàn bộ nhóm gói, hãy thay thế đối số install bằng remove theo sau là tên của nhóm mà bạn muốn xóa:

sudo dnf group remove Editors
Terminal hiển thị lời nhắc gỡ cài đặt cho nhóm gói Editors.
Terminal hiển thị lời nhắc gỡ cài đặt cho nhóm gói Editors.

Tìm kiếm các gói có sẵn

Một tính năng quan trọng của mọi trình quản lý gói là khả năng xem qua các kho lưu trữ từ xa để tìm những chương trình có sẵn. Để thực hiện việc này trong DNF, hãy sử dụng lệnh con search:

dnf search nano
Tìm kiếm DNF cho GNU Nano.
Tìm kiếm DNF cho GNU Nano.

Theo mặc định, DNF khớp truy vấn tìm kiếm của bạn với cả tên gói từ xa và bản tóm tắt ngắn gọn của nó. Bạn có thể thay đổi hành vi này để bao gồm tất cả các trường siêu dữ liệu có sẵn bằng cách thêm flag --all:

dnf search --all nano
Kết quả khớp hoàn toàn cho tìm kiếm DNF.
Kết quả khớp hoàn toàn cho tìm kiếm DNF.

Tìm kiếm gói nâng cao trong DNF

Ngoài “search”, DNF còn đi kèm với lệnh phụ repoquery cho phép tìm kiếm các gói và in chúng ở định dạng “NEVRA”. Điều này hữu ích nếu bạn đang tạo một script sẽ cài đặt các gói cụ thể bằng DNF và RPM.

Lệnh sau in tất cả các gói “emacs” có sẵn cho Fedora 40 ở định dạng NEVRA:

dnf repoquery emacs
Gói Emacs có sẵn ở định dạng NEVRA.
Gói Emacs có sẵn ở định dạng NEVRA.

Ngoài ra, lệnh phụ repoquery còn có các flag lọc bổ sung mà bạn có thể sử dụng để tinh chỉnh các tìm kiếm gói của mình. Ví dụ, flag --installed sẽ chỉ hiển thị các gói trên máy của bạn và --depends sẽ in các dependency của gói đó:

dnf repoquery --installed --depends emacs
Các dependency của gói cho Emacs trong DNF.
Các dependency của gói cho Emacs trong DNF.

Tìm nạp danh sách gói trong DNF

Lệnh con list là một cách linh hoạt để duyệt qua các gói DNF có sẵn từ máy cục bộ và những kho lưu trữ từ xa. Ví dụ, lệnh sau liệt kê tất cả các gói đã cài đặt trong hệ thống.

dnf list --installed
Danh sách các gói có sẵn dưới dạng DNF list.
Danh sách các gói có sẵn dưới dạng DNF list.

Tương tự như repoquery, lệnh con list có thể lấy các flag lọc bổ sung, chẳng hạn như --recent, sẽ in các gói gần đây nhất có sẵn trên những kho lưu trữ từ xa.

dnf list --recent

Hơn nữa, lệnh con list cũng có thể là một công cụ hữu ích để kiểm tra nhanh các bản nâng cấp có sẵn cho hệ thống:

dnf list --upgrades
Danh sách các bản nâng cấp có sẵn cho hệ thống Fedora 40 trong DNF.
Danh sách các bản nâng cấp có sẵn cho hệ thống Fedora 40 trong DNF.

Tính năng này cũng mở rộng cho các lệnh con định hướng bảo trì của DNF. Ví dụ, flag --autoremove liệt kê tất cả những dependency treo trên hệ thống:

dnf list --autoremove
Thứ Sáu, 24/05/2024 07:30
53 👨 148
0 Bình luận
Sắp xếp theo
    ❖ Linux