ограничить вывод dpkg-query -W установленными пакетами

На сервере под управлением Ubuntu 20.04 LTS я пытаюсь перечислить установленные ядра с помощью команды:

 dpkg-query -W -f '${Package}\n' 'linux-image-[0-9]*'

, которая, согласно справочной странице, должна перечислять установленные пакеты, соответствующие шаблону. Однако вывод команды включает ядро версии, которые уже были удалены. Как я могу ограничить вывод ядрами, которые все еще установлены?

2
задан 8 April 2021 в 16:07

1 ответ

На странице руководства от 20.04 говорится: « все пакеты, соответствующие шаблону », который включает неустановленные пакеты. Он не претендует на ограничение вывода только установленными пакетами.

  -W, --show [шаблон-имени-пакета ...] 
Как и в случае с параметром --list, будут перечислены все пакеты, соответствующие 
заданному шаблону. Однако вывод можно настроить с помощью параметра 
 --showformat. Формат вывода по умолчанию дает одну строку на 
соответствующий пакет, каждая строка имеет имя (дополненное квалификатором архитектуры 
для тех же пакетов Multi-Arch) и установленную версию пакета 
 , разделенных табуляцией. 
 
  1. Добавьте состояние пакета к вашему выводу

    dpkg-query -W -f '$ {db: Status-Status} $ {Package} \ n' 'linux- image- [0-9] * '

  2. Отфильтруйте вывод, используя поле состояния пакета. Все значения, кроме «не установлен», означают, что пакет установлен хотя бы частично.

    dpkg-query -W -f '$ {db: Status-Status} $ {Package} \ n' 'linux-image- [0-9] *' | awk '$ 1! = "not-installed" {print}'

  3. Ограничить вывод именем пакета

    dpkg-query -W -f '$ {db: Status-Status} $ {Package} \ n' 'linux-image- [0-9] *' | awk '$ 1! = "not-installed" {print $ 2}'

1
ответ дан 23 April 2021 в 23:24

Другие вопросы по тегам:

Похожие вопросы: