Просматривайте приложения Ubuntu из командной строки

Я могу просматривать ПО Ubuntu в Gnome-Software. И они очень хорошо разлагаются. Я ищу версию CLI этого. То есть я хотел бы просматривать приложения из терминала, где я мог бы перечислить все приложения в определенной категории (например, игры).

enter image description here

Почему я ищу это?

Если бы я мог просматривать приложения из терминала, результаты поиска могли бы быть сильно настроены с помощью таких инструментов, как grep, awk и т. Д. 118]

6
задан 22 June 2016 в 07:28

2 ответа

Там уже существует команда apt-cache dumpavail который перечислит все доступные пакеты из всех включенных репозиториев. Негласно это на самом деле читает из файлов, хранивших в /var/lib/apt/lists/ каталог (я сделал strace из команды, и это - то, что вывод показывает). Мое предположение было бы то, что программное обеспечение Gnome анализирует те точно те же файлы и организует файлы в категории.

Проблема состоит в том, что фактические данные имеют строки, которые запускаются с Package: для имен пакета и Section: которому они принадлежат, но Section: строки не организованы точно то же как в программном обеспечении Gnome. Однако с определенным волшебством командной строки, мы можем близко подойти к чему-то как этот. То, что я предлагаю, является функцией

filter_sections()
{
  apt-cache dumpavail | \
  awk -v SEARCH="$@" '/^Package:/{ PKG=$0  }\
    /Section:/ && $0~SEARCH {printf PKG" "$0"\n"}'
}

С той функцией мы можем перечислить все пакеты разделами, например:

$ filter_sections web | head                                                   
Package: apache2 Section: web
Package: awstats Section: web
Package: curl Section: web
Package: heat-api Section: web
Package: heat-api-cfn Section: web
Package: heat-api-cloudwatch Section: web
Package: heat-common Section: web
Package: heat-engine Section: web
Package: javascript-common Section: web
Package: libapache2-mod-apparmor Section: web

Сам код довольно прост: мы передаем вывод apt-cache dumpavail кому: awk который хранит каждое имя пакета в переменную, и если Section: строка также содержит строку, которой мы соответствуем, мы распечатаем и имя пакета и раздел.

Что касается списка самих разделов, это довольно легко также

apt-cache dumpavail | awk '/Section:/' | sort | uniq 

То, что также хорошо об этом подходе, то, что часть из Sections упоминание, какой репозиторий пакет принадлежит, например universe/python или multiverse/web . Функция, однако, будет искать все и их, но раз так требовала, чтобы мы могли всегда фильтровать с awk еще больше

4
ответ дан 22 June 2016 в 07:28

Вы, вероятно, ищете aptitude. Если это не установлено в вашей системе, откройте терминал и введите sudo apt-get install aptitude, затем sudo aptitude, чтобы запустить его.

Если вы хотите искать и фильтровать результаты с помощью grep, вы можете использовать sudo apt-cache search или sudo aptitude search

0
ответ дан 22 June 2016 в 07:28

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

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