поиск только установленных пакетов с использованием apt


16

Используя aptitudeя могу сделать поиск как:

aptitude search '~i bash'

Кажется, это регулярное выражение, специфичное для способностей. Можно ли сделать то же самое, используя aptили apt-cacheбез дополнительных команд?

apt search '~i bash'

не работает.


3
Нет, специфичные для aptitude функции поиска не были реализованы в apt.
Иордания

Есть ли какая-то другая функция в apt, дающая такой же результат?
Exostor

4
dpkg -l|grep bash
Ипор Сирсер

dpkg - другая команда
Exostor

Пользовательский интерфейс управления пакетами Debian является образцовым.
Рольф

Ответы:


18

Можешь попробовать:

apt list --installed bash

Это попытается перечислить установленные packages с именемbash

Однако, если вы хотите найти определенный файл, используйте apt-file

Следующая команда выведет список всех пакетов, которые имеют строку bashв своем имени:

apt list -a --installed bash

Как предлагает @Exostor apt list -a --installed bash, не всегда бывает так, чтобы перечислять те пакеты, которые начинаются с определенной строки, вместо этого используйте:

apt list -a --installed bash*

Если вы ищете глобус, пожалуйста, добавьте комментарий @Exostor ниже.


2
Ах! но это не сработает, потому что в нем не будут перечислены bash-buildins, bash-doc и т. д. Но apt list --installed bash*это достаточно близко для меня.
Exostor

Вместо того, чтобы копать, -aможно использовать список всех подходящих пакетов
VanagaS

2
Не работает для меня Ubuntu 16.04-machine: apt list -a --installed bashперечисляет bash / xenial-updates и bash / xenial, но apt list --installed bash*перечисляет bash, bash- complete и bash-doc, которые являются тремя пакетами bash, установленными на машине.
Экзостор

@Exostor, что на самом деле делает -a?
ysth

@ysth Перечисляет все версии пакета. Без -a он перечисляет только последний выпуск.
Exostor

6

dpkg-query --list | grep '^.i\s*PKG'

или:

dpkg-query --list PKG\* | grep '^.i'

где PKGимя желаемого пакета / рег-экс.


2

Если кому-то еще интересно, как это сделать, я использую следующий метод.

apt list --installed | grep [XYZ]

Этот метод также показывает различные установленные пакеты, содержащие искомую строку. Например, если я ищу vlc, мне показывают много других пакетов, в имени которых также есть vlc. Вот вход и выход:

apt list --installed | grep vlc

WARNING: apt.divert does not have a stable CLI interface. Use with caution in scripts.

browser-plugin-vlc/stable,now 2.0.6-4 amd64 [installed]
libvlc-bin/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
libvlc5/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
libvlccore8/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
phonon4qt5-backend-vlc/stable,now 0.9.0-2 amd64 [installed,automatic]
vlc/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-bin/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-data/stable,stable,stable,stable,now 2.2.7-1~deb9u1 all [installed]
vlc-l10n/stable,stable,stable,stable,now 2.2.7-1~deb9u1 all [installed]
vlc-plugin-base/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-notify/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-qt/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-samba/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-skins2/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-video-output/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-video-splitter/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-visualization/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]

Если окажется, что пакет не установлен, команда просто завершится.


Из всего вышесказанного это единственное, что сработало для меня на Монетном дворе 18.3
JoeManiaci
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.