Sử dụng dòng lệnh để thêm hoặc xóa các chương trình trên Linux là không cần thiết, nhưng nó nhanh hơn so với việc sử dụng một ứng dụng đồ họa. Nhiều người nhận thấy rằng tại một số thời điểm trong hành trình sử dụng Linux, họ sẽ mở một terminal để cài đặt các ứng dụng hoặc bản cập nhật hệ thống mới. APT và DNF là hai trong số các trình quản lý gói phổ biến nhất cho công việc này. Hai chương trình này rất giống nhau, nhưng chúng có một số khác biệt về cách hoạt động.
Tìm hiểu APT và DNF
APT và DNF có nhiều điểm chung và chia sẻ cú pháp tương tự cho nhiều hàm. Nếu bạn đã quen thuộc với một trong hai tùy chọn này, bạn có thể sẽ không gặp khó khăn khi học cái còn lại. Nếu là một người mới hoàn toàn, bạn nên biết rằng hai trình quản lý gói này là một trong những trình quản lý gói dễ học, đặc biệt là so với trình quản lý gói Pacman ít trực quan hơn được tìm thấy 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à nói cách khác là 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ó rất 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 trong chúng ta gặp phải đầ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 nói riêng.
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ư Red Hat Enterprise Linux và CentOS. DNF hoạt động với định dạng gói RPM.
DNF và YUM
Cái tên DNF không phải là viết tắt của một từ. Ba chữ cái đó là viết tắt của “Dandified 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ũ, nhưng nó đã bị ngừng sử dụng vì DNF. Hiện nay, không có nhiều lý do để tìm đến YUM.
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 trong chúng ta 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.
Tải xuống các bản cập nhật hệ thống
Trong APT, điều này bao gồm hai lệnh.
sudo apt update
sudo apt upgrade
Hãy phân tích kỹ những thứ này.
sudo cung cấp cho bạn quyền truy cập admin vào hệ thống. Nếu không có nó, lệnh của bạn sẽ không thành công với thông báo lỗi vì thiếu quyền.
Lệnh update tải xuống siêu dữ liệu về các gói từ những nguồn phần mềm có sẵn của bạn để máy tính biết phiên bản nào cần yêu cầu.
Sau khi cơ sở dữ liệu cục bộ của bạn được cập nhật, thì đã đến lúc tải xuống và cài đặt phần mềm mới nhất. Đó là nơi lệnh upgrade xuất hiện.
Để cài đặt các bản cập nhật hệ thống bằng DNF, hãy chạy:
sudo dnf update
hoặc
sudo dnf upgrade
DNF tự động kiểm tra siêu dữ liệu 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ể tự do sử dụng chúng thay thế cho nhau.
Tìm kiếm một gói
Giả sử bạn muốn cài đặt một chương trình, nhưng bạn 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 đồ họa, bạn có thể duyệt qua phần mềm có sẵn, nhưng trong dòng lệnh, bạn phải thực hiện tìm kiếm dựa trên văn bản.
Trong trường hợp này, cho dù bạn đang sử dụng APT hay DNF, bạn chỉ cần nhớ một lệnh duy nhất và đó là lệnh mà bạn có thể đoán được. 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
Cài đặt phần mềm
Giống như thực hiện tìm kiếm, lệnh cài đặt chương trình bằng APT hoặc DNF cũng giống như vậy.
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 đã tải xuống 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 cài đặt, 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 Downloads 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.
Gỡ cài đặt phần mềm
Có một số cách để làm cho phần mềm biến mất 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 file 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 dependency 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ý những file 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 dependency không cần thiết, hãy sử dụng:
sudo dnf autoremove
DNF và APT giống nhau hơn là khác biệt
Một số người dùng Linux lâu năm đã tạo dựng thói quen sử dụng chỉ APT hoặc DNF. Họ đã học được cú pháp để thực hiện các hoạt động mạnh mẽ và việc chuyển đổi sẽ buộc họ phải học lại những gì họ đã biết.
Nhưng đối với người mới, hai trình quản lý gói này phần lớn giống nhau. Sự khác biệt của chúng rất nhỏ, 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.
Hai trình quản lý gói cũ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 phụ thuộc nhiều vào kết nối Internet của bạn 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 gần như không phải là lý do để chuyển từ bản phân phối Linux này sang bản phân phối Linux khác.
Bạn nên sử dụng APT hay DNF?
Việc bạn sử dụng 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. Điều này có nghĩa là, đối với hầu hết người dùng Linux, lựa chọn đã được thực hiện sẵn. Nhưng nếu bạn có sở thích đặc biệt, bạn có thể chọn bản phân phối của mình dựa trên việc nó sử dụng APT hay DNF.
Không có trình quản lý gói nào đặc biệt mạnh mẽ hoặc có khả năng cao hơn trình quản lý gói khác. Nếu bạn cần chuyển đổi vào một ngày nào đó, việc thực hiện cũng không quá khó khăn.