- dpkg là trình quản lý gói cấp thấp, dùng để cài đặt và gỡ bỏ các tệp .deb cục bộ mà không cần giải quyết các phụ thuộc.
- APT hoạt động như một lớp cấp cao hơn trên dpkg, quản lý các kho lưu trữ, bộ nhớ đệm và tự động giải quyết các phụ thuộc.
- apt, apt-get và aptitude là các giao diện người dùng khác nhau của APT, được thiết kế cho các mục đích sử dụng khác nhau: người dùng cuối, lập trình kịch bản và quản lý nâng cao.
- Việc lựa chọn công cụ phù hợp với ngữ cảnh sẽ đơn giản hóa quá trình quản trị và giảm thiểu lỗi trên Debian và các hệ thống phái sinh.

Trong các bản phân phối dựa trên Debian (như Ubuntu, Linux Mint hoặc Devuan), câu hỏi về... rất thường xuyên được đặt ra. Sự khác biệt giữa việc sử dụng dpkg, apt, apt-get, hay thậm chí aptitude là gì?Thoạt nhìn, tất cả chúng dường như đều làm cùng một việc: cài đặt, cập nhật và gỡ bỏ chương trình. Tuy nhiên, mỗi loại lại đóng một vai trò khác nhau trong hệ sinh thái phần mềm, và hiểu rõ điều này sẽ giúp bạn tránh được rất nhiều rắc rối.
Trong bài viết này, chúng ta sẽ cùng nhau phân tích một cách bình tĩnh cách thức hoạt động của nó. dpkg với vai trò là trình quản lý cấp thấpAPT mang lại lớp bảo mật cao nhất như thế nào, và chúng khác biệt ra sao? thích hợp, thích hợp để đạt được và năng khiếuvà những lệnh cơ bản nào bạn cần nắm vững trong mỗi trường hợp. Ý tưởng là, sau khi đọc xong, bạn sẽ có một sự hiểu biết rõ ràng. Khi nào nên sử dụng từng công cụ và tại sao?cả trong các công việc hàng ngày lẫn các công việc hoặc kịch bản phức tạp hơn.
Nền tảng của tất cả: dpkg, trình quản lý gói cấp thấp.
Nền tảng cốt lõi mà toàn bộ hệ thống quản lý gói trong Debian dựa trên đó là dpkg, trình quản lý gói gốc hoạt động trực tiếp với các tệp .deb.Đây là trình quản lý gói đầu tiên cho Debian và cho đến ngày nay vẫn là tiêu chuẩn cho tất cả các bản phân phối phái sinh. Nếu bạn chuyển từ RPM, bạn có thể chuyển đổi các gói bằng cách sử dụng Chuyển đổi gói phần mềm bằng Alien Để tạo các tệp .deb có thể được cài đặt bằng dpkg.
Khác với các công cụ cấp cao, dpkg chỉ quan tâm đến... Cài đặt, gỡ cài đặt và truy vấn các gói .deb cục bộNó không xử lý các kho lưu trữ từ xa, không tải xuống các gói từ internet hoặc tự động giải quyết các phụ thuộc. Nếu bạn cài đặt thứ gì đó bằng dpkg và thiếu thư viện, bạn sẽ phải tự sửa chữa.
Điều đó khiến dpkg trở thành một công cụ lý tưởng cho quản lý các gói hàng một cách rất chính xác và có kiểm soát. (ví dụ, khi bạn tải xuống tệp .deb bằng tay hoặc khi bạn tự xây dựng các gói của mình), nhưng điều đó cũng có nghĩa là bạn cần phải biết chính xác mình đang làm gì với các phần phụ thuộc.
Gói nhị phân cung cấp tiện ích này trong Debian bao gồm, ngoài dpkg, các công cụ liên quan khác như... dpkg-deb, dpkg-split, dpkg-query, dpkg-divert hoặc dpkg-triggercùng với các tiện ích phụ trợ như update-alternatives o start-stop-daemonĐối với các tác vụ xây dựng gói phần mềm, có một gói phần mềm riêng biệt. dpkg-dev, bổ sung thêm các công cụ biên dịch.
Liệt kê các gói và trạng thái bằng lệnh dpkg.
Một trong những điều đầu tiên mà bất kỳ người quản trị nào thường cần là Kiểm tra xem những gói phần mềm nào đã được cài đặt trên hệ thống.Với dpkg, điều này có thể được thực hiện theo nhiều cách:
dpkg -lHiển thị danh sách các gói phần mềm cùng với trạng thái của chúng (đã cài đặt, đã xóa, v.v.).dpkg -l nombre_paquete: chỉ lọc theo gói đó và cho bạn biết gói đó đã được cài đặt hay chưa.dpkg --get-selectionsHiển thị danh sách đầy đủ các gói dịch vụ và lựa chọn hiện tại của bạn.dpkg --get-selections paquete: Nhanh chóng kiểm tra xem một gói cụ thể có được đánh dấu là đã cài đặt, chưa cài đặt, v.v. hay không.
Một chi tiết gây tò mò là Lệnh dpkg –get-selections cũng liệt kê các gói ở trạng thái “deinstall”.Đây là những gói đã được gỡ cài đặt nhưng vẫn còn lưu giữ các tệp cấu hình hoặc siêu dữ liệu trên hệ thống. Chúng ta sẽ thấy điều này được phản ánh khác nhau như thế nào khi truy vấn bằng APT sau này.
Cài đặt, gỡ bỏ và xóa các gói phần mềm bằng dpkg.
Để làm việc trực tiếp với tệp .deb đã tải xuống, dpkg cung cấp các lệnh rất rõ ràng. Cài đặt và gỡ bỏ các gói phần mềm cụ thể mà không cần thông qua kho lưu trữ.:
dpkg -i paquete.deb: cài đặt gói được chỉ định (install).dpkg -r nombre_paquete: gỡ bỏ gói phần mềm nhưng vẫn giữ lại các tệp cấu hình (gỡ bỏ).dpkg -P nombre_paquete: Thực hiện xóa sạch hoàn toàn, bao gồm cả việc xóa các tệp cấu hình liên quan (xóa sạch).
Khi nào nó được sử dụng tùy chọn -P thay vì -r Cả các tập tin nhị phân và tập tin cấu hình đều được làm sạch, điều này rất hữu ích nếu bạn muốn hệ thống trở về trạng thái như chưa từng cài đặt ứng dụng đó. Điều mà dpkg sẽ không làm, chúng tôi nhắc lại, là: Tự động gỡ bỏ các gói phụ thuộc chỉ được cài đặt riêng cho gói đó.Bạn sẽ phải tự mình quản lý việc đó hoặc dựa vào APT.
Xem thông tin và nội dung của các gói .deb
Một tính năng thú vị khác là khả năng Kiểm tra xem gói .deb chứa những gì hoặc bao gồm những siêu dữ liệu nào.Đó là lúc yếu tố tiện ích phát huy tác dụng. dpkg-deb, được bao gồm trong chính gói dpkg:
dpkg-deb -I paquete.debHiển thị thông tin chi tiết về gói phần mềm (tên, phiên bản, các gói phụ thuộc, người bảo trì, v.v.).dpkg-deb --contents paquete.debLiệt kê tất cả các tệp sẽ được cài đặt trên hệ thống khi cài đặt gói .deb đó.
Những lựa chọn này rất thiết thực khi bạn cần. Kiểm tra kỹ lưỡng xem gói phần mềm đó sẽ thực hiện những gì trong hệ thống của bạn. hoặc khi bạn gỡ lỗi các sự cố liên quan đến đường dẫn và tệp được cài đặt bởi một gói .deb cụ thể.
APT: lớp cấp cao nằm trên dpkg
APT (Advanced Package Tool) được xây dựng dựa trên dpkg, vốn là một công cụ được hỗ trợ bởi... một tập hợp các thư viện và tiện ích bổ sung cho việc giải quyết phụ thuộc và quản lý kho lưu trữ.Thay vì tương tác trực tiếp với các tệp .deb, hầu hết người dùng tương tác với lớp này, lớp này sẽ gọi dpkg để thực hiện các thao tác cấp thấp.
APT chủ yếu được viết như sau: Một thư viện C++ cung cấp các hàm để thao tác với cơ sở dữ liệu về các gói, phiên bản, nguồn gốc và các mối quan hệ.Một số giao diện dòng lệnh dựa vào thư viện này: apt-get, apt-cache, apt và cả các công cụ bên ngoài như aptitude hoặc giao diện đồ họa kiểu Synaptic.
Trong tất cả các phiên bản Debian hiện tại, gói này apt có mức độ ưu tiên "quan trọng", có nghĩa là Nó là một phần của bất kỳ quá trình cài đặt hệ thống cơ bản nào.Và mặc dù dpkg vẫn là cốt lõi, nhưng đối với người dùng thông thường, "trình quản lý gói" để sử dụng hàng ngày là APT, cũng như Nó cùng tồn tại với các định dạng khác như Flatpak. trên nhiều bàn làm việc hiện đại.
Một trong những tính năng mạnh mẽ nhất của APT là... Sắp xếp việc cài đặt và gỡ bỏ các gói phần mềm theo thứ tự tối ưu.Trước khi khởi chạy dpkg, nó thực hiện sắp xếp theo thứ tự cấu trúc của danh sách gói để giảm thiểu xung đột, và chỉ trong những trường hợp khó khăn, nó mới dùng đến việc buộc thực hiện các hành động nội bộ của dpkg bằng các tùy chọn. --force Nếu bạn không tìm được giải pháp thay thế an toàn.
Kho lưu trữ và tệp sources.list
APT luôn hoạt động từ các kho phần mềm được khai báo trong các tệp cấu hìnhTệp chính là /etc/apt/sources.listĐây là nơi định nghĩa các nguồn gói phần mềm chính thức của Debian hoặc Ubuntu, và có thể thêm các kho lưu trữ của bên thứ ba. Nếu bạn cần Tạo kho lưu trữ phần mềm của riêng bạn Điều này sẽ giúp bạn hiểu cách nhắm mục tiêu APT vào một nguồn tùy chỉnh.
Ngoài tập tin chính, người ta thường có thêm các tập tin khác. các tệp bổ sung dưới /etc/apt/sources.list.d/ Đối với các kho lưu trữ cụ thể. Các điểm này có thể đề cập đến các thư mục cục bộ hoặc phương tiện vật lý (như CD/DVD) cũng như các máy chủ từ xa có thể truy cập qua HTTP, HTTPS hoặc FTP.
APT cũng duy trì một bộ nhớ đệm cục bộ chứa thông tin về tất cả các gói có sẵn trong các kho lưu trữ đó.Nó chủ yếu được lưu trữ dưới /var/lib/apt/ và nó được cập nhật bằng lệnh quen thuộc. apt update o apt-get update.
Để chỉnh sửa phông chữ một cách thuận tiện, bộ phần mềm này bao gồm các tính năng sau: lệnh apt edit-sources, thao tác này sẽ mở tệp chính bằng trình soạn thảo văn bản mặc định của thiết bị đầu cuối. sources.list hoặc tệp bạn chỉ định. Nếu bạn chưa cấu hình trình soạn thảo nào, nó sẽ yêu cầu bạn chọn một trình soạn thảo (nano, vim, neovim, v.v.) và từ đó trở đi nó sẽ luôn sử dụng trình soạn thảo đó.
Quản lý trạng thái và phụ thuộc gói
Điểm khác biệt lớn so với dpkg là APT Nó tự động xử lý việc giải quyết và tải xuống các thư viện phụ thuộc.Khi bạn yêu cầu cài đặt một gói, hệ thống sẽ tính toán xem những gói nào khác cần thiết, phiên bản nào tương thích và những xung đột nào có thể xảy ra, và chỉ sau đó mới gọi dpkg để thực hiện các thay đổi. Đối với các tác vụ chẩn đoán và gỡ lỗi, bạn có thể tham khảo cách thức hoạt động. Liệt kê các phần phụ thuộc của một gói và tránh làm hỏng hệ thống khi cài đặt thứ gì đó.
APT cũng duy trì một tệp bổ sung, /var/lib/apt/extended_statesNơi nó ghi lại xem một gói được người dùng cài đặt một cách rõ ràng hay là một phần phụ thuộc của gói khác. Thông tin này rất quan trọng đối với các chức năng như... apt autoremove để họ có thể tìm ra những gói nào là ứng cử viên để xóa vì chúng là "gói mồ côi".
Về các tiểu bang, có một điểm khác biệt thú vị: APT, khi được sử dụng apt list --installed, Bỏ qua các gói được đánh dấu là “gỡ cài đặt” (những chương trình đã bị gỡ cài đặt nhưng vẫn giữ nguyên cấu hình). Chúng xuất hiện trong kết quả đầu ra của apt list chẳng hạn như “cấu hình dư thừa”, trong khi dpkg --get-selections Vâng, nó hiển thị trực tiếp các kết quả. Nếu bất kỳ danh sách nào không khớp, bạn nên xem lại kết quả gốc và lọc bằng... grep để phân tích những trường hợp ranh giới đó.
Các lệnh apt cơ bản dùng trong sinh hoạt hàng ngày
Với sự xuất hiện của hệ thống chỉ huy hiện đại aptDebian và Ubuntu cung cấp Giao diện thân thiện hơn với người dùng cho các tác vụ quản lý gói phần mềm thông thường.thống nhất các chức năng trước đây được phân chia giữa apt-get y apt-cacheMặc dù sử dụng cùng các thư viện bên trong, cú pháp của nó thuận tiện hơn và đầu ra dễ đọc hơn; hơn nữa, nó có thể cùng tồn tại với các định dạng khác trên máy tính để bàn, chẳng hạn như... Quản lý AppImage trong Linux.
Tập tin /etc/apt/sources.list mà chúng ta đã đề cập trước đó mặc định sẽ tập trung lại. Thông tin về tất cả các kho lưu trữ được apt sử dụng, không giống như các công cụ như yum Thông thường, chúng xử lý nhiều tệp cấu hình. Điều này giúp đơn giản hóa đáng kể quá trình thiết lập ban đầu cho người dùng ít kinh nghiệm.
Cập nhật thông tin kho lưu trữ
Trước khi cài đặt bất cứ thứ gì, APT cần phải có danh sách cập nhật các gói kho lưu trữ Để tìm hiểu các phiên bản hiện có, hãy sử dụng:
apt updateTải xuống lại chỉ mục gói từ tất cả các kho lưu trữ đã được cấu hình.
Sự khác biệt so với cái cũ apt-get update có phải vậy không apt hiển thị thông tin bổ sung rất hữu ích., chẳng hạn như số lượng gói có thể được cập nhật và thông báo gợi ý chạy apt list --upgradable để xem chúng một cách chi tiết.
Tìm kiếm các gói trong kho lưu trữ
Để tìm một chương trình hoặc thư viện trong số những chương trình hoặc thư viện hiện có, chúng tôi có thể Sử dụng chức năng tìm kiếm tích hợp sẵn của APT.Theo truyền thống, việc này được thực hiện bằng cách apt-cache searchnhưng lệnh apt Đơn giản hóa cú pháp:
apt search nombreoapt-cache search nombreHọ tìm kiếm văn bản được chỉ định trong cơ sở dữ liệu của gói đã tải xuống.
Cách này đơn giản thôi. Xem gói nào tương ứng với ứng dụng cụ thể nào. (Ví dụ: tìm kiếm "gimp", "vlc" hoặc "libreoffice") và kiểm tra xem nó có sẵn cho phiên bản hệ điều hành của bạn hay không.
Cài đặt và gỡ bỏ các gói bằng apt
Thao tác phổ biến nhất bạn sẽ thực hiện với APT là Cài đặt và gỡ bỏ phần mềm khỏi kho lưu trữCú pháp ở đây rất đơn giản:
apt install paquete: Cài đặt gói được yêu cầu và tất cả các thành phần cần thiết cho gói đó.apt remove paquete: Gỡ cài đặt gói phần mềm nhưng vẫn giữ lại các tệp cấu hình.apt remove --purge paqueteoapt purge paquete: Gỡ bỏ gói phần mềm và cả các tệp cấu hình hệ thống của nó.
Khi chỉ sử dụng remove, "Dấu vết" có thể còn lại dưới dạng thư mục cấu hình hoặc tệp cấu hình.Đây là điều bình thường để nếu bạn cài đặt lại ứng dụng, nó sẽ giữ nguyên các cài đặt của bạn. Nếu bạn muốn xóa hoàn toàn, tùy chọn "xóa sạch" là lựa chọn phù hợp.
Dọn dẹp các khu vực và loại bỏ các bao bì còn sót lại.
Sau nhiều lần cài đặt và gỡ bỏ ứng dụng theo thời gian, chúng sẽ tích lũy dần. Các gói được cài đặt như là các gói phụ thuộc của các gói khác nhưng hiện không còn cần thiết nữa.Để giải phóng dung lượng và giữ cho hệ thống luôn sạch sẽ, APT cung cấp:
apt autoremove: Loại bỏ các gói phụ thuộc được cài đặt tự động mà hiện không còn cần thiết cho bất kỳ gói nào đã được cài đặt.
Thứ tự này đặc biệt hữu ích vì biện pháp bảo trì định kỳBởi vì nó loại bỏ các thư viện và tập tin cũ chỉ chiếm dung lượng mà không đóng góp gì cho hệ thống hiện tại.
Cập nhật các gói đã cài đặt bằng apt
Sau khi các chỉ mục kho lưu trữ được cập nhật, bước tiếp theo là Áp dụng các bản cập nhật có sẵn cho các gói đã cài đặt.APT phân biệt hai cấp độ cập nhật:
apt upgradeCập nhật các gói đã cài đặt lên phiên bản mới nhất, miễn là việc này không yêu cầu cài đặt hoặc gỡ bỏ thêm các gói khác một cách đáng kể.apt full-upgrade: Thực hiện cập nhật mạnh mẽ hơn, cho phép bạn cài đặt hoặc gỡ bỏ các gói nếu cần thiết để hoàn tất quá trình (tương đương với phiên bản cũ).apt-get dist-upgrade).
Việc chạy trước là điều thường thấy. apt update tiếp theo là apt upgrade như một phần của công tác bảo trì định kỳ và dự trữ full-upgrade Khi có những thay đổi phiên bản lớn hoặc khi nhân hệ điều hành và các thành phần quan trọng được cập nhật.
Các lệnh hữu ích khác từ bộ lệnh apt
Ngoài các đơn đặt hàng phổ biến nhất, APT còn bao gồm: Một số lệnh bổ sung giúp cuộc sống dễ dàng hơn nhiều.:
apt show paqueteHiển thị thông tin chi tiết về một gói (mô tả, phiên bản, các gói phụ thuộc, kho lưu trữ nguồn, v.v.), với thứ tự hiển thị và không có dữ liệu không liên quan.apt list: Liệt kê các gói theo các bộ lọc khác nhau; với--installedhiển thị trạng thái đã cài đặt và với--upgradableNhững bản cập nhật khả dụng.apt edit-sourcesMở tệp nguồn APT để chỉnh sửa các kho lưu trữ.
Tất cả điều này làm cho apt giống như một "dao đa năng Thụy Sĩ" trong quản lý gói phần mềm., bao gồm hầu hết các tác vụ mà người dùng thông thường thực hiện hàng ngày mà không cần phải nhớ một loạt các lệnh phụ phức tạp.
Apt-get và aptitude: các giao diện người dùng APT cổ điển khác
Mặc dù lệnh apt đã trở nên nổi bật hơn trong những năm gần đây. apt-get và aptitude vẫn là những công cụ rất hữu ích. Trong hệ sinh thái Debian, mỗi công cụ đều có vị trí riêng và có những lý do thuyết phục để biết nên sử dụng chúng trong ngữ cảnh nào.
Trong lịch sử, apt-get là giao diện dòng lệnh đầu tiên cho APTXuất hiện từ cuối những năm 90 và được nhắc đến trong vô số kịch bản và tài liệu, nó được thiết kế để cung cấp một giao diện ổn định và dễ dự đoán, lý tưởng cho tự động hóa và các tác vụ không tương tác.
Về phần mình, aptitude được sinh ra như một giải pháp thông minh và tiện lợi hơn dành cho những người dùng ưa thích môi trường tương tác.Nó cung cấp cả chế độ giao diện dòng lệnh (CLI) tương thích với tập lệnh và giao diện dạng văn bản (ncurses) với các menu, bộ lọc và chế độ xem gói được sắp xếp khoa học.
Các chức năng và lệnh điển hình của apt-get
với apt-get Bạn có thể thực hiện hầu hết các tác vụ tương tự như với aptTuy nhiên, cú pháp của nó hơi dài dòng hơn và giao diện người dùng kém thân thiện hơn. Các lệnh được sử dụng phổ biến nhất là:
apt-get updateCập nhật chỉ mục kho lưu trữ.apt-get upgradeCập nhật các gói đã cài đặt mà không gây ra những thay đổi quá lớn.apt-get dist-upgradetương đương vớiapt full-upgradeHiện đại, cho phép bạn cài đặt và gỡ bỏ các gói để hoàn tất quá trình nâng cấp phức tạp.apt-get install paquete: Cài đặt một gói từ kho lưu trữ bằng cách giải quyết các phụ thuộc.apt-get remove paqueteyapt-get purge paqueteChúng gỡ bỏ các gói phần mềm, có hoặc không kèm theo các tệp cấu hình.
Một ưu điểm quan trọng của apt-get là... Hành vi của nó vẫn cực kỳ ổn định giữa các phiên bản.Vì lý do này, các nhà phát triển Debian khuyến nghị tiếp tục sử dụng nó trong các kịch bản và quy trình tự động hóa.Như apt Nó hướng đến người dùng cuối nhiều hơn và có thể thay đổi chi tiết đầu ra hoặc giá trị mặc định theo thời gian.
Năng lực: Giao diện ncurses và giải quyết phụ thuộc nâng cao
Không giống như apt và apt-get, aptitude đóng góp một giao diện chế độ văn bản rất đầy đủ được khởi chạy đơn giản bằng cách chạy sudo aptitude Không cần tranh luận. Từ màn hình đó bạn có thể:
- Tìm kiếm theo danh mục gói phần mềm (đã cài đặt, khả dụng, lỗi thời, v.v.).
- Tìm kiếm và lọc các gói sản phẩm dựa trên các tiêu chí khác nhau. (Tên, mô tả, trạng thái).
- Chọn nhiều gói để cài đặt, cập nhật hoặc gỡ bỏ và áp dụng tất cả các thay đổi cùng một lúc.
Điểm mạnh kỹ thuật lớn nhất của nó nằm ở... Hệ thống giải quyết sự phụ thuộc dựa trên điểm số và các phương án thay thếKhi xảy ra xung đột phức tạp, tính năng này thường đưa ra một số giải pháp (ví dụ: gỡ cài đặt một gói phần mềm, giữ lại phiên bản cũ hơn hoặc cài đặt thêm các gói khác) và cho phép người dùng đánh dấu những phần nào của đề xuất mà họ muốn giữ lại hoặc loại bỏ trong lần giải quyết tiếp theo.
Từ góc độ dòng lệnh, aptitude Nó cũng hỗ trợ các lệnh như:
aptitude update: cập nhật danh sách gói.aptitude install paqueteyaptitude remove paqueteCài đặt và gỡ bỏ các gói phần mềm theo cách tương tự như apt-get.aptitude full-upgradeThực hiện cập nhật hoàn chỉnh với logic giải quyết phụ thuộc riêng.
Hơn nữa, năng khiếu Nó ghi lại rất chi tiết những gói nào được cài đặt thủ công và những gói nào được cài đặt như các gói phụ thuộc.và có các tùy chọn để đóng băng phiên bản, đánh dấu các gói để ngăn chặn cập nhật, v.v. Một số chức năng này có thể được sao chép ngày nay bằng cách sử dụng apt-markTuy nhiên, năng khiếu vẫn được các nhà quản lý đánh giá cao vì họ đã sử dụng nó trong nhiều năm.
Những điểm khác biệt chính giữa dpkg, APT, apt-get, apt và aptitude
Sau khi xem xét từng công cụ riêng lẻ, việc chụp ảnh nhóm sẽ giúp bạn dễ hình dung hơn. Vậy sự khác biệt giữa chúng là gì, và khi nào thì nên sử dụng từng loại?Chúng ta có thể tóm tắt nó thành ba cấp độ: thấp, trung bình và cao.
Ở mức độ cơ bản nhất là dpkg, hoạt động trực tiếp trên các gói .deb cục bộ.Nó không giải quyết các phụ thuộc hoặc giao tiếp với kho lưu trữ; nó chỉ đơn giản là cài đặt, gỡ cài đặt hoặc hiển thị thông tin về một gói cụ thể. Nó thường được so sánh với RPM trong thế giới Red HatVì chúng thực hiện các chức năng tương tự trong các họ phân phối tương ứng của chúng.
Ở cấp độ trung cấp/cao cấp, chúng ta có APT là một hệ thống quản lý gói với kho lưu trữ, bộ nhớ đệm thông tin và khả năng tự động giải quyết các phụ thuộc.Nó cung cấp logic cho việc cài đặt cái gì và từ đâu, phiên bản nào tốt nhất, v.v. Trong thế giới của Red Hat, tính song song sẽ được tìm thấy trong các công cụ như... YUM hoặc DNF đang chạy trên RPM.
Các APT nêu trên là các giao diện người dùng khác nhau của nó:
apt-getGiao diện cổ điển, mạnh mẽ và ổn định, hướng đến việc sử dụng kịch bản và tự động hóa.aptGiao diện người dùng hiện đại, tích hợp các chức năng apt-get và apt-cache, đồng thời cung cấp kết quả đầu ra rõ ràng hơn.aptitude: một trình quản lý gói cấp cao với giao diện người dùng đồ họa (TUI) tùy chọn ncurses và một hệ thống giải quyết phụ thuộc đặc biệt tinh vi.
Nếu chúng ta tập trung vào sự khác biệt giữa APT và DPKG, thì sự khác biệt cơ bản là ở chỗ: APT có thể tải các gói từ kho lưu trữ từ xa, quản lý nhiều nguồn và xử lý tất cả các phụ thuộc.Trong khi đó, DPKG chỉ cài đặt và gỡ bỏ các gói mà bạn truyền cho nó dưới dạng tệp cục bộ.
Nếu so sánh apt và apt-get, cả hai đều cung cấp Các chức năng rất giống nhau để cài đặt, cập nhật hoặc gỡ bỏ gói phần mềm.Nhưng apt cải thiện cách trình bày thông tin, tích hợp thanh tiến độ trong quá trình cài đặt và kết hợp thành một lệnh duy nhất những việc trước đây được thực hiện bằng các lệnh khác. apt-get y apt-cacheNgược lại, apt-get cung cấp một giao diện dòng lệnh (API) ổn định và bảo thủ hơn theo thời gian.
Về năng khiếu, đặc điểm phân biệt chính là giao diện ncurses và xử lý xung đột phụ thuộc nâng caoTrong khi apt và apt-get cố gắng tìm ra giải pháp "tốt nhất" cùng một lúc, aptitude cho phép người dùng tham gia tương tác vào quá trình này, quyết định gói nào cần giữ lại, gói nào cần hạ cấp hoặc gói nào cần xóa.
Khi nào nên sử dụng dpkg, apt, apt-get hoặc aptitude trên hệ thống Debian?
Khi những điểm khác biệt đã rõ ràng, câu hỏi mà nhiều người thường đặt ra là: Nên sử dụng lệnh nào trong từng tình huống cụ thểKhông có câu trả lời duy nhất chính xác, nhưng có những quy luật khá hợp lý mà nhiều quản trị viên và người dùng cao cấp thường tuân theo.
Đối với việc sử dụng hàng ngày trên máy tính để bàn hoặc hệ thống máy chủ cấu hình thấp, lựa chọn tiện lợi nhất thường là... sử dụng lệnh apt cho hầu hết mọi thứCập nhật kho lưu trữ, tìm kiếm ứng dụng, cài đặt và gỡ cài đặt gói phần mềm, kiểm tra những gì có thể được cập nhật và phát hành các bản cập nhật thường xuyên.
Khi giao dịch với lên lịch cài đặt, triển khai hoặc tập lệnh bảo trìTài liệu chính thức cũng khuyên nên tiếp tục dựa vào... apt-get (y apt-cache (đối với các truy vấn), vì hành vi đầu ra và các tùy chọn của nó ổn định hơn nhiều giữa các phiên bản so với của aptĐiều này có thể dẫn đến thay đổi một số chi tiết nhỏ vì nó được thiết kế cho con người chứ không phải cho máy móc.
dpkg chủ yếu được dành riêng cho các thao tác cấp thấp với các gói .deb được tải xuống thủ côngCông cụ này hữu ích để kiểm tra nội dung hoặc trong trường hợp bạn cần kiểm soát rất chi tiết và không muốn APT can thiệp bằng cách tự động giải quyết các phụ thuộc. Nó cũng rất hữu ích cho các tập lệnh đóng gói phức tạp hoặc để gỡ lỗi các sự cố cụ thể với các tệp .deb.
Về phần mình, năng khiếu thường được thể hiện rõ khi Bạn phải đối mặt với những xung đột phụ thuộc thực sự phức tạp. Trong các môi trường Debian cũ hơn hoặc được tùy chỉnh cao, công cụ phân giải của nó thường cung cấp nhiều lựa chọn thay thế hơn, và giao diện ncurses rất tiện lợi để xem xét những thay đổi sẽ được thực hiện trước khi chấp nhận một thao tác lớn.
Tóm lại, toàn bộ hệ sinh thái công cụ này tồn tại là vì Mỗi cấp độ giải quyết một vấn đề khác nhau trong quản lý gói phần mềm trên Debian.dpkg đóng vai trò như bộ máy cấp thấp, APT là bộ não quyết định cài đặt cái gì và từ đâu, còn các giao diện khác nhau của nó (apt, apt-get, aptitude) là những bộ mặt dễ nhìn thấy, được điều chỉnh phù hợp với các hồ sơ người dùng khác nhau, từ người mới bắt đầu nhất đến quản trị viên luôn dán mắt vào màn hình.
Người viết đam mê về thế giới byte và công nghệ nói chung. Tôi thích chia sẻ kiến thức của mình thông qua viết lách và đó là những gì tôi sẽ làm trong blog này, cho bạn thấy tất cả những điều thú vị nhất về tiện ích, phần mềm, phần cứng, xu hướng công nghệ, v.v. Mục tiêu của tôi là giúp bạn điều hướng thế giới kỹ thuật số một cách đơn giản và thú vị.