В Синаптическом можно перечислить пакеты разделом. Например, в изображении ниже всех пакетов раздела "Amateur Radio (universe)" перечислены.
Как может я получать такой список (редактирование: с описанием пакета) в командной строке?
Мне нужен необработанный список; терминальное приложение как aptitude
не сделает.
Что ж, хотя вы говорите, что не хотите использовать aptitude из-за вывода, вам нужно знать, что вы можете изменить его, чтобы получить то, что вам нравится:
aptitude -F'|%p|%d|' search '?section(hamradio)'
Уловка в переключатель -F
, который изменяет выходной формат. % p
означает пакет. Это также выводит, когда пакет имеет различные архитектуры (например, amd64 против i386), и % d
, который выводит описание. Вы можете еще больше персонализировать шаблон поиска, например, для не установленных пакетов:
aptitude -F'|%p|%d|' search '?section(hamradio) !~i'
где ~ i
означает установленный, а !
- нет, поэтому он читается как «не (! ) installed (~ i) ", или если вам нужны только те, которые доступны для вашей архитектуры:
aptitude -F'|%p|%d|' search '?section(hamradio) ~r native'
~ r
является ? architecture ()
, который соответствует архитектуре пакета и native
, в котором перечислены только те, которые имеют ту же архитектуру, что и система, что эквивалентно dpkg --print-architecture
.
Таким образом, предыдущую строку можно записать еще более кратко как :
aptitude -F'|%p|%d|' search '~s hamradio ~r native'
Убедитесь, что пакет dctrl-tools установлен. Он предоставляет полезные команды для поиска в списках пакетов apt и dpkg. Чтобы получить полное описание всех пакетов из определенного раздела, которые можно установить с помощью apt, запустите
grep-aptavail -F Section hamradio
. Это покажет полные метаданные пакета для каждого пакета в разделе hamradio
. Если все, что вы хотите видеть, это имена пакетов, запустите
grep-aptavail -n -F Section -s Package hamradio
. Если ваша система настроена для многоархитектурной архитектуры, один и тот же пакет может отображаться в этом листинге более одного раза, если он создан для более чем одной архитектуры. Поэтому для дальнейшего уточнения используйте
grep-aptavail -n -F Section -s Package hamradio | sort | uniq
или
grep-aptavail -n -F Section -s Package hamradio | sort -u
для сортировки списка пакетов и удаления повторяющихся пакетов с тем же именем.
Обратите внимание, что вам нужно будет использовать фактическое имя раздела, которое отличается от "удобочитаемое" имя, которое Synaptic показывает в своем графическом интерфейсе. Например, в приведенных выше поисках используется имя раздела hamradio
вместо строки «Amateur Radio», показанной в Synaptic.
См. Справочную страницу для grep-aptavail для полного описания всех вариантов и несколько примеров.
В следующем однострочном тексте будут напечатаны все уникальные имена пакетов раздела репозитория, вместе с их описанием, каждое в отдельной строке. Все поля разделены вертикальной чертой, т.е. готовы к преобразованию в вертикальную таблицу Markdown . Результирующую таблицу можно найти на моем веб-сайте.
grep-aptavail -n -s Package,Description -F Section hamradio |paste -sd '||\n' |sed 's:^:|:' |sort -u
Вы можете использовать следующую команду, чтобы получить список пакетов, принадлежащих данному разделу:
$ dpkg-query -W -f='${binary:Package} ${Section}\n' | awk '{if ($2 == "shells") {print $1}}'
bash
bash-completion
busybox-initramfs
busybox-static
dash
zsh
zsh-common