dpkg или apt-get, который из двух дает более полный результат?

Я хочу выяснить, КАЖДЫЙ и КАЖДЫЙ пакет / программное обеспечение, установленное в системе Ubuntu (14.04 / 16.04).

Из моего понимания и нескольких обсуждений по SE и в других местах, таких как unix_stack_exchange ask_ubuntu , похоже, что все пакеты / программное обеспечение установлено в системе, в конечном итоге будет использоваться dpkg (будь то для самого пакета или его зависимостей).

  1. Значит ли это, что dpkg всегда будет предоставлять более полный список всех пакетов, установленных в системе (включая зависимости и т. Д.), Чем apt-get?
  2. И можно ли предположить, что dpkg можно использовать для отображения ВСЕ ПО ПОЛЬЗОВАТЕЛЯ (приложений пользователя / системы / и т. Д.), Установленных в системе?

dpkg -l всегда дает правильный список установленных (или удаленных, но все еще настроенных) пакетов. Он фактически использует dpkg-query для выполнения своей работы и ссылается на содержимое /var/lib/dpkg/status которое является ссылкой на установленные пакеты.

apt использует ту же информацию, но до недавнего времени не предоставлял простой способ для отображения пакетов; apt list теперь делает это, и вы получите те же результаты, что и dpkg -l (в другом формате).

dpkg может использоваться для отображения всех пакетов . Если все программное обеспечение в системе установлено с использованием пакетов, то оно отобразит все программное обеспечение; но если какое-либо программное обеспечение было установлено вручную, без пакета, то он не будет знать об этом.

Вы можете использовать apt с параметрами ( man apt-cache , man apt ..), чтобы получить необходимую информацию

dpkg или apt?

dpkg следует рассматривать как системный инструмент (backend) и apt как инструмент ближе к пользователю, который преодолевает ограничения первого. Эти инструменты работают вместе, каждый со своими особенностями, подходит для конкретных задач.

e, g 1: вы можете перечислить установленный пакет в вашей системе через dpkg или apt :

 apt list --installed dpkg -l 

e, g 2: Чтобы узнать зависимости, вы можете использовать apt-rdepends или apt-cache showpkg

 apt-rdepends <package_name> apt-cache showpkg <package_name>