apt
là để quản lý kho từ xa, dpkg
- cho các gói được cài đặt cục bộ. Chúng có liên quan. apt
là kết thúc trước dpkg
. Khi bạn chạy apt-get install package
nó sẽ nhận được .deb
tập tin và cài đặt nó thông qua dpkg
. Vì vậy, số lượng khác nhau vì có rất nhiều gói có sẵn, nhưng chỉ một phần được cài đặt cục bộ trên hệ thống của bạn.
apt-cache
có thể hiển thị cả gói đã cài đặt và chưa cài đặt, vì nó truy vấn apt
bộ đệm - liệt kê những thứ có sẵn trong kho từ xa (bộ đệm đó là thứ bạn nhận được khi bạn làm apt-get update
). Ví dụ,
$ apt-cache policy terminator
terminator:
Installed: (none)
Candidate: 1.91-1
$ dpkg -l terminator
dpkg-query: no packages found matching terminator
Lưu ý rằng có một công cụ khác có thể truy vấn danh sách các gói cục bộ đã cài đặt / gỡ bỏ và đó là dpkg-query
. Ví dụ,
$ dpkg-query -l 'libc6'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-====================-===============-===============-=============================================
ii libc6:amd64 2.27-3 amd64 GNU C Library: Shared libraries
ii libc6:i386 2.27-3 i386 GNU C Library: Shared libraries
$ dpkg -l libc6
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-====================-===============-===============-=============================================
ii libc6:amd64 2.27-3 amd64 GNU C Library: Shared libraries
ii libc6:i386 2.27-3 i386 GNU C Library: Shared libraries
Theo hướng dẫn sử dụng dpkg
dpkg cũng có thể được sử dụng làm giao diện người dùng cho dpkg-deb (1) và dpkg-query (1). Danh sách các hành động được hỗ trợ có thể được tìm thấy sau này trong phần HÀNH ĐỘNG. Nếu bất kỳ hành động nào gặp phải, dpkg chỉ chạy dpkg-deb hoặc dpkg-query với các tham số được cung cấp cho nó, nhưng hiện tại không có tùy chọn cụ thể nào được chuyển cho chúng, để sử dụng bất kỳ tùy chọn nào như vậy, back-end cần được gọi trực tiếp.
Theo như vậy dpkg-query
, cần lưu ý rằng công cụ này tập trung vào truy vấn cơ sở dữ liệu của các gói đã cài đặt và có thể xuất thông tin ở định dạng cụ thể ( -f
tùy chọn cộng với -W
hành động). Ví dụ,
$ dpkg-query -W -f='PACK:${Package}\nARCH:${Architecture}\nSTAT:${Status}\n---\n' libc6
PACK:libc6
ARCH:amd64
STAT:install ok installed
---
PACK:libc6
ARCH:i386
STAT:install ok installed
---
Thật thú vị, cơ sở dữ liệu dpkg duy trì danh sách các gói được chọn để loại bỏ hoặc đã bị xóa tại một số điểm . dpkg-query
cũng có thể lấy mẫu toàn cầu làm đối số và tùy thuộc vào sự hiện diện của nó mà chỉ hiển thị các gói đã cài đặt / cấu hình hoặc tất cả các gói.