Apt-cache: Jak wyświetlić listę wszystkich zainstalowanych pakietów z numerem wersji?

51

apt-cache dump --installed nie działa, wyświetla również listę odinstalowanych pakietów.

Chcę wymienić pakiety instalacyjne każdy po jednym wierszu, wraz z zainstalowanym numerem wersji.

Xiè Jìléi
źródło
3
błąd # 775771 ogranicza wyniki wyszukiwania apt-cache do zainstalowanych pakietów
bartolo-otrit

Odpowiedzi:

53

próbować dpkg -l

zawiera listę pakietów, wersji i krótki opis.

kev
źródło
1
Podoba mi się również, apt-show-versionsponieważ pokazuje również, który z nich jest uptotdate.
Malat
37

Najprostszym sposobem jest użycie dpkg, ale może wyświetlić kilka obcych pakietów i obciąć długie nazwy pakietów i numery wersji:

dpkg -l

Aby wyświetlić listę tylko poprawnie zainstalowanych pakietów i nie obcinać nazw:

dpkg -l | grep '^ii'

Aby uzyskać większą kontrolę nad formatem wyjściowym, możesz użyć dpkg-query:

dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'
Gilles „SO- przestań być zły”
źródło
13

Inne polecenie może być:

apt-show-versions

Daje również informacje o stanie pakietu (aktualny, aktualizowalny, ...) oraz o dystrybucji pochodzenia (wheezy, jessie, ...). Można łatwo odfiltrować pakiety pochodzące z backportów lub innych egzotycznych repozytoriów.

Ten program jest pakowany osobno. Najpierw zainstaluj z:

apt-get install apt-show-versions
SkyRaT
źródło
Jest to naprawdę miłe, ponieważ pokazuje wersję, do której pakiet można zaktualizować. +1.
Randall Cook
w połączeniu z apt-mark showmanualtym daje przyjemny i łatwy sposób na pobranie wersji wszystkich ręcznie zainstalowanych pakietów, zobacz także tę odpowiedź Askubuntu apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Gregor
4

Następujące polecenie wyświetla listę pakietów wraz z ich wersjami, a dodatkowo pozwala skonfigurować system z tymi samymi pakietami i wersjami później, używając pkg-selections.txtwygenerowanego tutaj pliku:

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt

Każda linia będzie zawierać nazwę pakietu, wersję i opcjonalne „A”, jeśli pakiet został zainstalowany automatycznie.

Źródło: „ Klonowanie systemu Debian - identyczne pakiety i wersje ”. Zawiera również skrypt, który konfiguruje system pkg-selections.txt.

Tanius
źródło
4

Aby wyświetlić nazwy każdego zainstalowanego pakietu, wpisz jako dowolny użytkownik:

dpkg --get-selections

Otrzymasz takie wyjście:

accountsservice              install
aclinstall                   install
acpi-supportinstall          install
acpidinstall                 install
...

Aby usunąć niepotrzebny ciąg znaków „zainstaluj”, możesz użyć sed :

dpkg --get-selections | sed 's:install$::'

A jeśli chcesz zapisać go w pliku o nazwie InstalledPackages , wpisz:

dpkg --get-selections | sed 's:install$::' > InstalledPackages
Rémi G.
źródło
1

Jeśli nie masz dostępu do systemu na żywo i masz kopię zapasową /partycji root , możesz:

root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app

Teraz /root/installed_appzawiera wszystkie zainstalowane pakiety!

sasha2002
źródło