Jak w najprostszy sposób odszukać wszystkie zainstalowane pakiety w systemie linux?
W poprzednim artykule (apt-cache receptury) padło polecenie apt-cache pkgnames, ono listuje wszystkie pakiety dostępne w repozytoriach, recepta na wylistowanie zainstalowanych programów jest jeszcze prostsza:

dpkg -l
Wybór:U=nieznany/I=instalacja/R=usunięcie/P=wyczyszczenie/H=zatrzymanie
| Stan:N=brak/I=zainstalowany/C=skonfigurowany/U=rozpakowany/
|/  F=częśc. skonfigurowany/H=częśc. zainstalowany/W=wyzw. czek./T=wyzw. zapl.
|| Błędy?=(brak)/R-do pon. inst. (duże litery w "Stan" i "Błędy"=problemy)
||/ Nazwa                                       Wersja                                                  Architektura Opis
+++-===========================================-=======================================================-============-================================================================================
ii  accountsservice                             0.6.40-2ubuntu11.3                                      amd64        query and manipulate user account information
ii  acl                                         2.2.52-3                                                amd64        Access control list utilities
ii  acpi-support                                0.142                                                   amd64        scripts for handling many ACPI events
ii  acpid                                       1:2.0.26-1ubuntu2                                       amd64        Advanced Configuration and Power Interface event daemon

Polecenie dpkg -l zwraca zawartość wraz z opisem paczek, możemy filtrować zwrócone wyniki za pomocą grep

dpkg -l | grep scan
ii  gawk                                        1:4.1.3+dfsg-0.1                                        amd64        GNU awk, a pattern scanning and processing language
ii  libsane:amd64                               1.0.25+git20150528-1ubuntu2.16.04.1                     amd64        API library for scanners
ii  libsane-common                              1.0.25+git20150528-1ubuntu2.16.04.1                     all          API library for scanners -- documentation and support files
ii  libsane-extras:amd64                        1.0.22.3ubuntu1                                         amd64        API library for scanners -- extra backends
ii  libsane-extras-common                       1.0.22.3ubuntu1                                         amd64        API library for scanners -- documentation and support files
ii  libzbar0:amd64                              0.10+doc-10ubuntu1                                      amd64        bar code scanner and decoder (library)
ii  mawk                                        1.3.3-17ubuntu2                                         amd64        a pattern scanning and text processing language
ii  sane                                        1.0.14-11                                               amd64        scanner graphical frontends
ii  sane-utils                                  1.0.25+git20150528-1ubuntu2.16.04.1                     amd64        API library for scanners -- utilities
ii  scangearmp2                                 3.30-1                                                  amd64        ScanGear MP for Linux.
ii  simple-scan                                 3.20.0-0linuxmint1                                      amd64        Simple Scanning Utility

Podobny efekt można uzyskać wykorzystując apt list,

apt list --installed

jak zwrócić listę pakietów zawierającą ich suche nazwy?

dpkg -l | grep php | awk '{print $2}'
libapache2-mod-php
libapache2-mod-php7.0
php-cgi
php-cli
php-common
php-curl
php-gd
php-json
php-mbstring
php-mcrypt
php-mysql
php-readline
php7.0-cgi
php7.0-cli
php7.0-common
php7.0-curl
php7.0-gd
php7.0-json
php7.0-mbstring
php7.0-mcrypt
php7.0-mysql
php7.0-opcache
php7.0-readline
php7.0-xml
php7.0-zip

Alfabetyczna lista zainstalowanych pakietów bez opisów i wersji

Przed reinstalacją Linuksa często korzytałem z tej opcji by zachować listę wszystkich zainstalowanych narzędzi, programów itp., część z nich będzie potrzebna do ręcznego zainstalowania w nowym systemie. Listę pakietów zapiszemy do pliku tekstowego.

dpkg -l | awk '{print $2}' > lista_zainstalowanych_pakietow_linux_mint.txt

Lista zainstalowanych pakietów posortowana według rozmiaru

Jak sprawdzić jakie pakiety zajmują najwięcej miejsca w systemie? Komenda może się przydać kiedy chcemy odchudzić naszego Linuksa lub gdy kończy się miejsce na partycji. Liczba na końcu określa jak dużo rekordów zwrócić:

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -n 20

przykładowa zawartość

248000	iron64
233561	linux-firmware
184482	vivaldi-stable
184130	opera-stable
170844	nvidia-304
169030	firefox
168340	linux-modules-extra-4.15.0-45-generic
152223	linux-image-extra-4.10.0-38-generic
150280	libgl1-mesa-dri
138445	libgl1-mesa-dri
122300	wine1.6-amd64
115696	mint-x-icons
114437	wine1.6-i386
110282	libreoffice-core
82873	libreoffice-common
75361	linux-headers-4.15.0-45
72654	linux-headers-4.10.0-38
70410	virtualbox
68445	linux-image-4.10.0-38-generic
65469	libwebkit2gtk-3.0-25