Я могу просматривать ПО Ubuntu в Gnome-Software. И они очень хорошо разлагаются. Я ищу версию CLI этого. То есть я хотел бы просматривать приложения из терминала, где я мог бы перечислить все приложения в определенной категории (например, игры).
Почему я ищу это?
Если бы я мог просматривать приложения из терминала, результаты поиска могли бы быть сильно настроены с помощью таких инструментов, как grep
, awk
и т. Д. 118]
Там уже существует команда 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
еще больше
Вы, вероятно, ищете aptitude
. Если это не установлено в вашей системе, откройте терминал и введите sudo apt-get install aptitude
, затем sudo aptitude
, чтобы запустить его.
Если вы хотите искать и фильтровать результаты с помощью grep
, вы можете использовать sudo apt-cache search
или sudo aptitude search