Jak wyświetlić listę wszystkich zainstalowanych pakietów z określonymi numerami wersji?

27

Chciałbym wyświetlić listę wszystkich zainstalowanych pakietów, wraz z konkretnymi numerami wersji w moim systemie. Sprawdziłem dpkg --get-selections( Jak wyświetlić listę wszystkich zainstalowanych pakietów ), ale nie pokazuje mi, czego potrzebuję. Na przykład:

$ dpkg --get-selections apache2
apache2                                         install

pokazuje, że apache2 jest zainstalowany, ale nie wersja. Niedawno zrobiłem apt-get upgradewięc apache2.2.22-1 powinien być zainstalowany ( http://packages.ubuntu.com/precise-updates/apache2.2-common ), ale jak mogę to pokazać?

Dzięki!

użytkownik2133697
źródło

Odpowiedzi:

35

Użyj dpkg -lzamiast tego.

Przykład:

dpkg -l | grep '^ii' | grep skype

Wyprowadza to:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype
ii skype 4.2.0.11-0ubuntu0.12.04.2 Klient i386 dla Skype VOIP ...

Jeśli chcesz tylko wyodrębnić nazwę i wersję, możesz to zrobić:

dpkg -l | grep '^ii' | grep skype | awk '{print $2 "\t" $3}'

Który wypisze tylko drugą i trzecią kolumnę z powyższego wyjścia, jak poniżej:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype | awk „{print 2 $" \ t "3 USD} '
skype 4.2.0.11-0ubuntu0.12.04.2

Oczywiście, jeśli chcesz wyświetlić listę wszystkich zainstalowanych pakietów wraz z ich wersjami, a nie tylko Skype, to po prostu usuń grep skypeczęść, aby wykonać polecenie w następujący sposób:

dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'
Alaa Ali
źródło
Zauważyłem dpkg -l obcięcie numerów wersji, jeśli były one dłuższe niż 21 znaków i podobnie jak wszystkie wersje pakietów mają długość 22 znaków. :(
ThorSummoner,
12

Posługiwać się

dpkg-query --show apache2

aby uzyskać numer wersji pakietu apache2i

dpkg-query --show 

aby uzyskać numery wersji dla wszystkich zainstalowanych pakietów

Florian Diesch
źródło
1
Twoje rozwiązanie dało mi ~ 20% więcej pakietów niż dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'. Czy wiesz na czym polega różnica?
Thomas Jensen
3
@Thomas Jensen: Dzięki za wykrycie tego. dpkg-query --showfaktycznie nie pokazuje zainstalowanych pakietów, ale niezainstalowanych . Oznacza to, że pokazuje np. Częściowo zainstalowane pakiety lub pakiety z pozostałymi plikami konfiguracyjnymi.
Florian Diesch