Найдите пакеты установленными из определенного репозитория со способностью

Я - в поисках чего-то аналог к этому вопросу: Zypper: Как я отображаю все пакеты из определенного репозитория?

Так как я нахожусь на Ubuntu, мне нужно основанное на способности решение: Как я могу получить список установленных пакетов из определенного репозитория?

39
задан 20.03.2017, 12:04

4 ответа

Для полноты: В системах Ubuntu можно использовать Синаптический для этой задачи, также. В левом столбце можно отфильтровать пакеты их источником.

6
ответ дан 07.12.2019, 08:47

После того, чтобы читать информационную страницу способности и дюжины попыток, я наконец получил это:

aptitude search '?narrow(?installed,?not(?archive(testing)) ?archive(unstable))'

или (эквивалентный):

aptitude search '~S ~i (!~Atesting ~Aunstable)'

Это будет искать пакеты, установленные из нестабильных архивов любого репозитория. Необходимо отфильтровать пакеты из архива по умолчанию (тестирующий в вышеупомянутом примере).

Если Вы хотите к блокам фильтра, установленным из www.debian-multimedia.org/unstable:

aptitude search '~S ~i (!~Atesting ~Aunstable ?origin("Unofficial Multimedia Packages"))

Править: “Архив”, “источник” и т.д. вычитается от Release файл репозитория. К сожалению, не все инструменты могут посмотреть на все те строки, и они используют другой синтаксис для них. Можно найти те файлы как /var/lib/apt/lists/*Release. Или просто введите apt-cache policy получить обзор. способный кэш изменил свой выходной формат: более поздние версии используют стиль apt_preferences.

  • Suite: или Archive: (старое название!)
    • поиск способности: ?archive(___) или ~A___
    • формат способности: %t
    • apt_preferences: release a=___
    • Примеры Ubuntu: natty-backports, trusty-security, stable
  • Origin:
    • поиск способности: ?origin(___) или ~O___
    • формат способности: n/a
    • apt_preferences: release o=___
    • Примеры Ubuntu: Canonical, Google, Inc., LP-PPA-dockbar-main, Ubuntu
  • все другие строки
    • способность: n/a
18
ответ дан 07.12.2019, 08:47

Я нашел это:

aptitude search "?origin (<repository>) ?installed"

Можно также найти список критериев поиска поддерживаемым "поиском способности" здесь.

2
ответ дан 07.12.2019, 08:47

Исследуйте тег источника (такой как o=Debian) для каждого из Ваших текущих репозиториев:

apt-cache policy | sed -n 's/.*o=\([^,]\+\).*/\1/p' | uniq

Затем поиск пакетов от (или не от) конкретный источник:

aptitude search "?installed?origin(Debian)"
aptitude search "?installed?not(?origin(Debian))"

Это не подходит для проверки защиты, потому что она полагается на каждый репозиторий для предоставления его собственной информации об источнике, но это могло бы быть полезно для поиска и устранения неисправностей источника пакетов, которые присутствуют в нескольких репозиториях.

15
ответ дан 07.12.2019, 08:47

Теги

Похожие вопросы