Як перерахувати всі встановлені пакети з конкретними номерами версій?


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 ), але як я можу це показати?

Спасибі!

Відповіді:


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} "
skype 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}'. Чи знаєте ви, в чому різниця?
Thomas Jensen

3
@Thomas Jensen: Дякую, що помітили це. dpkg-query --showнасправді не відображаються встановлені пакети, але не встановлені . Тобто це показує напр. Встановлені пакети або пакети з іншими конфігураційними файлами.
Флоріан Дієш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.