Cách sử dụng dpkg, apt, aptitude, synaptic và tasksel
Debian cung cấp nhiều công cụ để quản lý các gói phần mềm, mỗi công cụ phục vụ một mục đích cụ thể trong hệ sinh thái quản lý gói, và hiểu khi nào cũng như cách sử dụng từng công cụ sẽ giúp bạn duy trì hệ thống một cách hiệu quả.
Hiểu về Cấu trúc Phân cấp Quản lý Gói
Trong Debian, quản lý gói hoạt động theo các lớp, và mỗi công cụ đảm nhận một vai trò khác nhau:
- dpkg là công cụ cốt lõi được sử dụng để cài đặt, gỡ bỏ và kiểm tra trực tiếp các tệp gói
.deb, nhưng nó không quản lý việc tải xuống gói hoặc xác định các phụ thuộc. aptvàaptitudehoạt động trên nềndpkgvà chúng lấy các gói từ kho trực tuyến và tự động xử lý các phụ thuộc, giúp việc cài đặt trở nên dễ dàng hơn.- Synaptic đơn giản là một giao diện đồ họa (một công cụ trực quan “giống như cửa hàng ứng dụng”) cho phép bạn sử dụng các tính năng của
aptmà không cần dùng dòng lệnh. taskselcài đặt các nhóm phần mềm liên quan (gọi là nhiệm vụ), như “Máy chủ Web” hoặc “Môi trường Máy tính để bàn”, giúp bạn không phải cài đặt từng gói một.
Vì các công cụ này hoạt động ở các cấp độ khác nhau, chúng bổ sung cho nhau thay vì thay thế lẫn nhau, và bạn sẽ thấy những tình huống mà một công cụ phù hợp hơn công cụ khác.
Làm việc với dpkg
dpkg là công cụ quản lý gói cấp thấp hoạt động trực tiếp với các tệp .deb mà bạn đã có trên hệ thống của mình. Nó không tải xuống các gói từ internet và không tự động cài đặt các phụ thuộc cần thiết.
Vì vậy, nếu một gói yêu cầu phần mềm khác để hoạt động, bạn phải tự cài đặt các phụ thuộc đó hoặc chuyển sang apt để cài đặt các phụ thuộc đó tự động.
Để cài đặt một tệp gói mà bạn đã tải về, ví dụ, nếu bạn có tệp google-chrome-stable_current_amd64.deb, bạn có thể cài đặt nó bằng lệnh
dpkg -i package-name.deb
Nếu tất cả các phụ thuộc cần thiết đã có, việc cài đặt sẽ hoàn tất thành công. Tuy nhiên, nếu một số gói bị thiếu, bạn có thể thấy thông báo lỗi như sau:
dependency problems - leaving unconfigured
Trong trường hợp này, bạn có thể khắc phục các phụ thuộc bị thiếu bằng cách chạy lệnh sau, lệnh này sẽ yêu cầu apt tự động tải xuống và cài đặt bất kỳ phụ thuộc nào cần thiết để hoàn tất việc cài đặt.
sudo apt -f install
Để gỡ bỏ một gói đã cài đặt:
dpkg -r package-name
Để liệt kê tất cả các gói đã cài đặt trên hệ thống của bạn:
dpkg -l
Để kiểm tra xem một gói cụ thể có được cài đặt hay không:
dpkg -l package-name
Vì dpkg không tự động xử lý các phụ thuộc, bạn có thể gặp lỗi về các gói bị thiếu. Trong những trường hợp như vậy, các công cụ cấp cao hơn như apt trở nên cần thiết.
Sử dụng apt cho Quản lý Gói Hàng Ngày
Trong khi dpkg làm việc trực tiếp với các tệp .deb, apt là công cụ bạn sẽ sử dụng thường xuyên nhất vì nó tự động tải các gói từ kho trực tuyến của Debian và cài đặt bất kỳ phụ thuộc nào mà chúng yêu cầu, điều này làm cho apt trở thành công cụ ưa thích cho việc cài đặt, gỡ bỏ và cập nhật phần mềm hàng ngày.
Công cụ apt yêu cầu quyền quản trị viên để thực hiện các thao tác cài đặt và gỡ bỏ, vì vậy bạn sẽ cần sử dụng sudo hoặc chạy các lệnh này với quyền root.
Trước khi cài đặt bất kỳ phần mềm nào, bạn nên cập nhật danh sách gói để hệ thống biết về các phiên bản mới nhất có sẵn:
sudo apt update
Để cài đặt một gói và tất cả các phụ thuộc cần thiết của nó, sử dụng:
sudo apt install package-name
Để gỡ bỏ một gói trong khi giữ lại các tập tin cấu hình của nó:
sudo apt remove package-name
Nếu bạn cũng muốn xóa các tệp cấu hình (gỡ cài đặt sạch hơn), hãy sử dụng:
sudo apt purge package-name
Để nâng cấp tất cả các gói đã cài đặt lên phiên bản mới nhất:
sudo apt upgrade
Nếu bạn không chắc chắn về tên gói chính xác, bạn có thể tìm kiếm theo từ khóa, điều này sẽ hiển thị danh sách các gói phù hợp cùng với mô tả ngắn.
apt search keyword
apt giữ lại các tệp gói đã tải xuống trên hệ thống của bạn trong trường hợp chúng cần được sử dụng lại. Theo thời gian, bộ nhớ đệm này có thể trở nên lớn và để giải phóng dung lượng, hãy chạy:
sudo apt clean
Quản lý gói với công cụ aptitude
Mặc dù apt thường đủ cho hầu hết các công việc quản lý gói hàng ngày, nhưng aptitude cung cấp một số tính năng bổ sung và thường có thể xử lý các tình huống phụ thuộc phức tạp hơn. Trong một số trường hợp, khi apt gặp khó khăn trong việc giải quyết xung đột gói hoặc nâng cấp, aptitude có thể đưa ra các giải pháp tốt hơn.
Bạn có thể sử dụng aptitude từ dòng lệnh giống như apt:
sudo aptitude update
sudo aptitude install package-name
sudo aptitude remove package-name
aptitude search keyword
Tuy nhiên, một trong những ưu điểm chính của aptitude là nó cũng bao gồm một giao diện tương tác dựa trên văn bản mà bạn có thể mở bằng:
sudo aptitude
Giao diện này cho phép bạn duyệt qua các gói, đọc mô tả, xem các phiên bản và đánh dấu gói để cài đặt hoặc gỡ bỏ trước khi áp dụng các thay đổi. Các gói được sắp xếp gọn gàng theo danh mục, điều này giúp việc khám phá hệ thống dễ dàng hơn so với việc phải nhớ tên lệnh hay từ khóa tìm kiếm.
Một lợi ích khác là aptitude ghi lại gói nào được cài đặt thủ công và gói nào được cài đặt tự động như phần phụ thuộc. Nhờ đó, nó thường tốt hơn trong việc quyết định gói nào an toàn để gỡ bỏ khi gỡ cài đặt phần mềm, giúp bạn tránh vô tình gỡ bỏ thứ gì đó quan trọng.
Sử dụng Synaptic để quản lý gói phần mềm bằng giao diện đồ họa
Nếu bạn thích làm việc với giao diện đồ họa thay vì dòng lệnh, Synaptic cung cấp một trình quản lý gói đầy đủ tính năng được xây dựng trên apt. Nó hiển thị các gói theo danh sách có tổ chức và có thể tìm kiếm, cùng với mô tả chi tiết và thông tin về các phụ thuộc, phiên bản và trạng thái cài đặt.
Để cài đặt Synaptic, chạy:
sudo apt install synaptic
Khi đã cài đặt xong, bạn có thể khởi chạy nó từ menu ứng dụng của mình, hoặc bằng cách chạy:
sudo synaptic-pkexec
Khi Synaptic mở ra, bạn sẽ thấy các danh mục gói ở bên trái và danh sách các gói ở bên phải. Chọn một gói sẽ hiển thị chi tiết trong bảng điều khiển phía dưới, bao gồm gói đó làm gì, phiên bản nào có sẵn và các gói khác mà nó phụ thuộc.
Để cài đặt một gói, nhấp chuột phải vào gói đó và chọn Đánh dấu để cài đặt, điều này sẽ tự động chọn bất kỳ phụ thuộc cần thiết nào. Sau khi đánh dấu tất cả các gói bạn muốn, nhấp vào Áp dụng để bắt đầu cài đặt.
Bởi vì Synaptic cung cấp phản hồi trực quan về xung đột gói và thay đổi phụ thuộc trước khi bất kỳ thứ gì được cài đặt, nó cho phép người dùng nhìn rõ các tác động của hành động của họ.
Cài đặt các nhóm gói bằng tasksel
Khác với các công cụ chỉ tập trung vào các gói riêng lẻ, tasksel cài đặt toàn bộ các bộ phần mềm liên quan cùng một lúc, được gọi là tasks, và mỗi task chứa tất cả các gói cần thiết để thực hiện một vai trò cụ thể trên hệ thống của bạn, chẳng hạn như máy chủ web, môi trường máy tính để bàn hoặc máy chủ thư điện tử.
Để mở menu chọn tác vụ tương tác, hãy chạy:
sudo tasksel
Điều này sẽ mở ra một menu nơi bạn có thể duyệt các nhiệm vụ có sẵn và sử dụng các phím mũi tên để di chuyển, cũng như phím cách để chọn hoặc bỏ chọn một nhiệm vụ.
Nếu bạn muốn xem các nhiệm vụ có sẵn mà không cần mở menu, hãy sử dụng:
tasksel --list-tasks
Để cài đặt một tác vụ cụ thể trực tiếp từ dòng lệnh, hãy chạy:
sudo tasksel install task-name
Mặc dù tasksel ít được sử dụng trong việc quản lý gói hàng ngày, nhưng nó rất hữu ích trong quá trình thiết lập hệ thống hoặc khi bạn muốn cài đặt toàn bộ môi trường phần mềm trong một bước.
Chọn công cụ phù hợp
Mỗi công cụ quản lý gói trong Debian được thiết kế cho một mục đích cụ thể, và việc chọn công cụ phù hợp phụ thuộc vào những gì bạn đang cố gắng thực hiện. Sử dụng dpkg khi bạn làm việc với một tệp .deb riêng lẻ mà bạn tải về thủ công, đặc biệt là từ bên ngoài kho lưu trữ chính thức. Sử dụng apt trong các tình huống hàng ngày, chẳng hạn như cài đặt, gỡ bỏ và cập nhật phần mềm từ dòng lệnh, nó sẽ tự động xử lý các phụ thuộc cho bạn.
Hãy cân nhắc aptitude khi xử lý các vấn đề phụ thuộc phức tạp hơn hoặc khi bạn muốn sử dụng giao diện văn bản tương tác của nó để duyệt và quản lý các gói. Chọn Synaptic nếu bạn thích giao diện đồ họa hoặc muốn khám phá trực quan phần mềm có sẵn trước khi cài đặt.
Cuối cùng, hãy sử dụng tasksel khi bạn cần cài đặt một bộ đầy đủ các gói phần mềm liên quan, ví dụ, để cấu hình hệ thống thành máy chủ web, môi trường máy tính để bàn, hoặc trạm làm việc phát triển.
Tất cả các công cụ này đều hoạt động với cùng một cơ sở dữ liệu gói nền tảng, vì vậy chúng không xung đột với nhau. Bạn có thể tự do chuyển đổi giữa chúng tùy theo nhu cầu. Điều quan trọng là chọn công cụ phù hợp nhất với công việc thay vì dựa vào một phương pháp cho mọi thứ.






