APT và DNF: So sánh giữa hai trình quản lý gói Linux

APT và DNF: So sánh trình quản lý gói Linux

Chia sẻ kiến thức 14/08/2022

APT và DNF là hai trình quản lý gói những người mới sử dụng Linux thường khả năng gặp phải. Vậy lựa chọn nào dễ sử dụng và có hiệu suất cao hơn? 

Bạn không nhất thiết phải sử dụng dòng lệnh để thêm hoặc xóa các chương trình trên Linux, nhưng nó sẽ nhanh hơn so với sử dụng một ứng dụng đồ họa. 

APT và DNF là hai trong số các trình quản lý gói phổ biến nhất cho nhiệm vụ này. Hai chương trình này rất giống nhau, nhưng chúng cũng có một số điểm khác biệt về cách hoạt động. 

1. Tìm hiểu APT và DNF

APT và DNF có nhiều điểm chung và cú pháp tương tự cho nhiều hàm. Nếu bạn đã quen thuộc với một trong hai, bạn có thể sẽ không gặp khó khăn khi học cái còn lại. Nếu bạn là một người mới hoàn toàn, hãy biết rằng hai trình quản lý gói này là hai lựa chọn khá dễ học, đặc biệt là so với trình quản lý gói Pacman ít trực quan hơn trong Arch Linux và các bản phân phối dựa trên Arch khác.

APT là viết tắt của Advanced Package Tool. Nó đóng vai trò là trình quản lý gói mặc định cho Debian và các bản phân phối Linux dựa trên Debian như Ubuntu. Vì Ubuntu là bản phân phối Linux phổ biến nhất và có nhiều bản phân phối dựa trên Ubuntu, APT là trình quản lý gói mà nhiều người dùng gặp đầu tiên. Phần mềm trong Linux có các định dạng khác nhau và APT hoạt động với định dạng gói DEB.

DNF là trình quản lý gói mặc định trong Fedora và các bản phân phối dựa trên Fedora như CentOS và Red Hat Enterprise Linux. DNF hoạt động với định dạng gói RPM.

DNF so với YUM

DNF là bản viết lại của YUM, “Yellowdog Updater, Modified.” Bản thân YUM là bản viết lại của “Yellowdog UPdater”, hay YUP, ban đầu được phát triển cho Yellow Dog Linux.

Mặc dù bạn có thể thấy YUM được sử dụng trên các hệ thống cũ hơn, nhưng nó đã bị ngừng sử dụng vì sự có mặt của DNF. 

2. Ví dụ về lệnh APT và DNF

Hãy bắt đầu với một trong những tác vụ đầu tiên mà nhiều người thực hiện sau khi cài đặt bản phân phối Linux mới — tải xuống các bản cập nhật hệ thống.

2.1 Download các bản cập nhật hệ thống

Trong APT, việc này bao gồm hai lệnh.

sudo apt update
sudo apt upgrade

Hãy chia nhỏ những thứ này:

sudo cung cấp cho bạn quyền truy cập quản trị vào hệ thống. Nếu không có sudo, lệnh của bạn sẽ không thành công và bạn sẽ thấy thông báo lỗi do thiếu quyền.

Lệnh update tải xuống siêu dữ liệu về các gói từ các nguồn phần mềm có sẵn để máy tính của bạn biết cần yêu cầu phiên bản nào.

Sau khi cơ sở dữ liệu cục bộ của bạn được update, thì đã đến lúc download và cài đặt phần mềm mới nhất. Việc này được thực hiện nhờ lệnh upgrade (nâng cấp). 

Để cài đặt các bản cập nhật hệ thống bằng DNF, hãy chạy lệnh:

sudo dnf update

hoặc

sudo dnf upgrade

DNF tự động kiểm tra siêu dữ liệu (metadata) bất cứ khi nào bạn bắt đầu cập nhật hệ thống hoặc cài đặt phần mềm. Vì lý do này, các lệnh update và upgrade thực hiện cùng một chức năng và bạn có thể sử dụng chúng thay thế cho nhau.

2.2 Tìm kiếm một Gói

Nếu bạn muốn cài đặt một chương trình, nhưng lại không biết tên chính xác mà bản phân phối của bạn sử dụng cho gói chương trình đi kèm. Trong một ứng dụng GUI, bạn có thể xem danh sách phần mềm có sẵn, nhưng trong dòng lệnh, bạn phải tìm kiếm dựa trên văn bản.

Trong trường hợp này, dù bạn đang dùng APT hay DNF, bạn chỉ cần nhớ một lệnh duy nhất. Nếu bạn muốn tìm kiếm một chương trình có tên “package”, chỉ cần nhập:

sudo apt search package

hoặc

sudo dnf search package

2.3 Cài đặt phần mềm

Lệnh cài đặt chương trình bằng APT hoặc DNF cũng giống như lệnh tìm kiếm.

Trong APT:

sudo apt install package

Trong DNF:

sudo dnf install package

Một lợi thế của DNF so với APT là khả năng cài đặt RPM mà bạn đã download theo cách thủ công từ web. Bạn có thể làm như vậy bằng cách sử dụng cùng một lệnh install, nhưng bao gồm đường dẫn đầy đủ đến RPM thay vì tên gói.

sudo dnf install /path/to/package.rpm

Ngược lại, để cài đặt DEB mà bạn đã đặt trong thư mục Tải xuống của mình, bạn không thể sử dụng APT và phải chuyển sang chương trình dòng lệnh riêng biệt chẳng hạn như dpkg.

2.4 Gỡ cài đặt phần mềm

Có một số cách để gỡ cài đặt phần mềm bằng cách sử dụng APT. Tùy chọn đầu tiên và trực tiếp nhất là:

sudo apt remove package

Để xóa các tệp cấu hình, ngoài dữ liệu ứng dụng, hãy chạy:

sudo apt purge package

Để APT tự động xóa phần mềm đã được cài đặt dưới dạng phụ thuộc (dependencies) và không còn cần thiết nữa, bạn có thể sử dụng:

sudo apt autoremove

DNF không có lệnh tương đương trực tiếp với lệnh purge, vì các bản phân phối dựa trên RPM không quản lý các tệp cấu hình theo cách giống như các hệ thống dựa trên Debian. Nhưng hai lựa chọn còn lại đều giống nhau.

Để gỡ cài đặt một chương trình bằng DNF, hãy chạy:
sudo dnf remove package

Và để tự động loại bỏ các phụ thuộc không cần thiết, hãy sử dụng:

sudo dnf autoremove

3. APT và DNF giống hơn là khác

APT và DNF phần lớn giống nhau. Sự khác biệt của chúng rất tinh tế, chẳng hạn như DNF tự động tải xuống thông tin gói trước khi cài đặt phần mềm hoặc kiểm tra các bản cập nhật.

Cách chúng trình bày thông tin khác nhau, như bạn có thể thấy trong hai ảnh chụp màn hình ở trên.

Tuy nhiên, cả hai đều là các chương trình dòng lệnh hoạt động gần như tức thì, với thời gian chờ đợi chủ yếu bị ảnh hưởng bởi kết nối internet và tốc độ của máy chủ bạn đang kết nối. Đối với hầu hết người dùng, có được quyền truy cập vào một trình quản lý gói khác hầu như không phải là lý do để chuyển từ bản phân phối này sang bản phân phối khác.

4. Nên sử dụng APT hay DNF?

Giữa APT và DNF, không có cái nào đặc biệt mạnh mẽ hơn hoặc có khả năng hơn cái còn lại. Lựa chọn giữa APT hay DNF phần lớn phụ thuộc vào việc bạn sử dụng bản phân phối nào. Và nếu bạn cần chuyển đổi vào một ngày nào đó, việc này không hề khó. 

>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:

>>> Xem thêm các chủ đề hữu ích:

 

Vân Nguyễn 

Dịch từ: https://www.makeuseof.com/apt-vs-dnf-vs-yum/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!