Просматривайте приложения Ubuntu из командной строки
Я могу просматривать программное обеспечение Ubuntu в Gnome-Software. И они очень хорошо разлагаются. Я ищу версию CLI этого. То есть я хотел бы просматривать приложения из терминала, где я мог бы перечислить все приложения в определенной категории (например, игры).
Почему я ищу это?
Если бы я мог просматривать приложения из терминала, результаты поиска можно было бы настроить с помощью таких инструментов, как grep
, awk
так далее...
2 ответа
Там уже существует команда apt-cache dumpavail
в котором будут перечислены все доступные пакеты из всех включенных репозиториев. За кулисами он фактически читает из файлов, хранящихся в /var/lib/apt/lists/
каталог (я сделал strace
команды, и вот что показывает вывод) . Я предполагаю, что Gnome Software анализирует те же самые файлы и организует их по категориям.
Проблема в том, что фактические данные имеют строки, начинающиеся с Package:
для имен пакетов и Section:
к которому они принадлежат, но Section:
линии организованы не так, как в Gnome Software. Однако, с небольшим количеством волшебства командной строки, мы можем приблизиться к чему-то подобному. То, что я предлагаю, это функция
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
который сохраняет каждое имя пакета в varialbe, и если 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