Как мне перечислить все установленные пакеты с конкретными номерами версий?

27

Я хотел бы перечислить все установленные пакеты с конкретными номерами версий в моей системе. Я проверил dpkg --get-selections( Как перечислить все установленные пакеты ), но он не показывает мне, что мне нужно. Например:

$ dpkg --get-selections apache2
apache2                                         install

показывает, что установлен apache2, но не версия. Я недавно сделал apt-get upgradeтак, чтобы apache2.2.22-1 должен был иметь установленную версию ( http://packages.ubuntu.com/precise-updates/apache2.2-common ), но как я могу это показать?

Благодарность!

user2133697
источник

Ответы:

35

Используйте dpkg -lвместо этого.

Пример:

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

Выводы это:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype
ii skype 4.2.0.11-0ubuntu0.12.04.2 клиент i386 для Skype VOIP ...

Если вы хотите извлечь только имя и версию, вы можете сделать это:

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

Который будет печатать только второй и третий столбец из вышеприведенного вывода, например так:

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

Конечно, если вы хотите перечислить все ваши установленные пакеты с их версиями, а не только Skype, просто удалите grep skypeчасть, чтобы сделать команду следующим образом:

dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'
Алаа али
источник
Я заметил, что dpkg -l усекает номера версий, если они длиннее 21 символа и, как и все версии пакетов, имеют длину 22 символа. :(
ThorSummoner
12

использование

dpkg-query --show apache2

получить номер версии пакета apache2и

dpkg-query --show 

получить номера версий для всех установленных пакетов

Флориан Диш
источник
1
Ваше решение дало мне примерно на 20% больше пакетов, чем dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'. Вы знаете, в чем разница?
Томас Дженсен
3
@ Томас Дженсен: Спасибо, что заметили это. dpkg-query --showна самом деле не показывает установленные пакеты, но не не установленные . То есть показывает, например, наполовину установленные пакеты или пакеты с остальными конфигурационными файлами.
Флориан Диш