2

Я использую Kubuntu. Я хотел бы получить список установленных пакетов в моей системе и, в частности, отсортировать их по категориям, как это видно в Muon Package Manager, на вкладке фильтра категорий. Для наглядности, это левая часть окна на следующем изображении.

Внутри Muon есть опция для экспорта списка установленных пакетов в меню File, но он просто экспортирует простой список (я думаю, что он выполняет команду dpkg --get-selections ), и это не то, что я ищу ,

Я попытался просмотреть справочные страницы dpkg , dpkg-query , apt и apt-get но мне не удалось найти какую-либо полезную информацию.

Единственная подсказка, которую я получил, заключается в том, что руководство dpkg-query заявляет, что можно отсортировать вывод, используя некоторые параметры команды, но я не нашел, как сортировать по категориям.

Любая подсказка?

1 ответ1

5

Вы действительно можете сделать это, используя dpkg-query и несколько других инструментов:

dpkg-query -Wf='${package}\t${Section}\t${status}\n' | grep installed | 
  gawk '{print $2"\t"$1}' | sort 

ОБЪЯСНЕНИЕ:

  • dpkg-query -Wf='${package}\t${section}\t${status}\n' : эта команда выведет список всех пакетов (-W) в виде package name <TAB> package section <TAB> package status . Со страницы руководства dpkg-query :

    -f, --showformat=format
          This  option  is  used  to specify the format of the output --show 
          will produce. The format is a string that will be output for each package 
          listed.
    

    Итак, одна эта команда производит вывод, как это:

    $ dpkg-query -Wf='${package}\t${Section}\t${status}\n' | head
    a2ps    text    install ok installed
    abiword editors install ok installed
    abiword-common  editors install ok installed
    abiword-plugin-grammar  editors install ok installed
    abiword-plugin-mathview editors install ok installed
    accountsservice admin   install ok installed
    acl utils   install ok installed
    acpi    utils   install ok installed
    acpi-support-base   admin   install ok installed
    acpid   admin   install ok installed
    
  • grep installed : выбирает только те строки, которые описывают пакеты, статус которых installed .

  • gawk '{print $2"\t"$1}' : используйте gawk, чтобы напечатать только два поля, которые нас интересуют (имя пакета и раздел), чтобы облегчить чтение и сортировку вывода, сначала напечатайте раздел и имя пакета второй.

  • sort : поскольку раздел теперь является первым полем, для сортировки пакетов по разделам достаточно простой sort .

Окончательный вывод выглядит так:

admin   accountsservice
admin   aptdaemon-data
editors libreoffice-impress
fonts   fonts-telu
games   enemylines3
games   enemylines7
gnome   cinnamon
libdevel    libxmu-dev
libs    libapt-pkg4.12
oldlibs hpijs
python  python-gi-cairo

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .