Какая команда оболочки может найти все пакеты, предоставляющие определенный полный виртуальный пакет?
Как следует из заголовка, я хочу получить список всех пакетов, которые предоставляют определенный виртуальный пакет. Один из способов сделать это - написать сценарий оболочки, который анализирует весь вывод
apt-cache search -f .*
и выводит все пакеты, которые имеют виртуальный пакет в разделе обеспечивает. Проблема этого подхода заключается в том, что для его выполнения требуется очень много времени. Я предполагаю, что должна быть простая команда, которая делает это эффективным способом, но которую я не смог найти.
2 ответа
Если у вас установлен aptitude, он предоставляет множество шаблонов, которые можно использовать для поиска.
В частности, в случае поиска пакетов, которые предоставляют заданное имя виртуального пакета, вы можете использовать это:
$ aptitude search '?provides(pattern)'
где pattern можно указать имя искомого виртуального пакета.
Например:
$ aptitude search -F %p '?provides(mail-reader)'
balsa
bsd-mailx
claws-mail
cone
emacs
emacs23
emacs23-lucid
emacs23-nox
evolution
gnus
im
jed
kmail
kmail-mobile
mailutils
mailutils-mh
mew
mew-beta
mew-beta-bin
mew-bin
mutt
nmh
opera
opera-next
seamonkey-mailnews
sylpheed
thunderbird
tkrat
vm
wl
wl-beta
xemacs21-mule
xemacs21-mule-canna-wnn
xemacs21-nomule
xjed
xul-ext-lightning
Видишь ли, если dpkg-query
будет соответствовать вашим потребностям.