пошук лише встановлених пакетів за допомогою apt


16

За допомогою aptitudeя можу здійснити пошук на зразок:

aptitude search '~i bash'

Це, здається, є специфічним зразком для здатності. Чи можна робити те саме, використовуючи додаткові команди aptчи apt-cacheбез них?

apt search '~i bash'

не працює.


3
Ні, функції пошуку, орієнтовані на придатність, не реалізовані в apt.
Йорданм

Чи є якась інша функція в підході, що дає такий же результат?
Екзостор

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-вбудовані файли, bash-doc тощо. Але apt list --installed bash*мені це досить близько.
Екзостор

Замість глобалізації -aможна було б перерахувати всі відповідні пакети
VanagaS

2
Не працює для мене. Ubuntu 16.04-машина: apt list -a --installed bashперераховує bash / xenial-updates та bash / xenial, але apt list --installed bash*перелічує bash, bash-завершення та bash-doc, що є трьома bash-пакетами, встановленими на машині.
Exostor

@Exostor що робить -а насправді?
ysth

@ysth Перераховує всі версії пакету. Без -a він містить лише останню версію.
Екзостор

6

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

або:

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

де PKGпотрібна назва пакету / reg-ex.


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.