Я использую Arch Linux.
Есть ли способ перечислить необязательные зависимости всех установленных пакетов? И если да, могу ли я отфильтровать этот список, чтобы увидеть только отсутствующие (не установленные) пакеты?
arch-linux
pacman
vonPetrushev
источник
источник
pacman -Qi | grep "Optional Deps" | grep -v None | grep -v installed
Ответы:
Вы можете использовать expac для запроса
pacman
базы данных.Что-то типа:
распечатает список всех установленных пакетов на вашем компьютере и
optdepends
для каждого (%O
) 1 в файл с именемoptdeps
. Затем вы можете отсортировать список установленных пакетов optdepends.Смотрите
man expac
полный список вариантов.1. Это верхний регистр O, а не ноль. Потому что у нас не может быть шрифта, который бы различал два ...
источник
В AUR-репозитории есть хорошая утилита (aur / pacdep).
У pacdep есть много опций - только один пример - найдите дополнительные пакеты для "thunar-archive-plugin":
Вывод выше означает, что ни один из дополнительных пакетов не установлен. После установки «xarchiver» вывод выглядит так
Я нашел (первая часть) этот ответ на
http://mywaytoarch.tumblr.com/post/34979742718/easily-list-package-dependencies
источник
Это не совсем эффективно, но найдет то, что вы хотите (в ЦВЕТ!):
источник
||
а не&&
после того , какgrep
, а затем круглые скобки вокруг остальной части линии?pacman -Qi xmms2 | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1 | cut -c19- | cut -d: -f1
Хотя я должен был заметить, что решение @ DarkHeart на самом деле не работает, оно вдохновило меня на создание рабочего. (без цветов, хотя)
Я использую package-query , похожий инструмент вместо expac, который был предложен @jasonwryan, потому что он у меня уже установлен (это зависимость от yaourt). Это должно быть тривиально, чтобы вместо этого использовать expac.
Список всех необязательных зависимостей в основном выполняется путем вызова пакета-запроса. Первый цикл for удаляет объяснения, поэтому остаются только имена пакетов для необязательных зависимостей; второй цикл for удаляет уже установленные зависимости в первой строке перед печатью результатов во второй.
источник
Это должно сделать трюк:
Первый ввод, чтобы
comm
перечислить все необязательные зависимости, второй ввод всех установленных пакетов и их атрибуты «предоставить». Оба списка отсортированы и содержат каждый элемент только один раз из-заsort -u
. Затем отображаются только строки, которые содержатся в первом, но не во втором списке.(отредактировано, чтобы включить предложение @ Archemar)
источник
Иногда приходится работать задом наперед ... сначала найдите все необязательные зависимости, затем сделайте перекрестную ссылку с полным списком, затем используйте uniq. Это создаст список установленных необязательных зависимостей.
Найти все установленное
Найти все не обязательно:
Поэтому уникальные записи должны быть необязательными:
Сформировать список недостающих необязательно зависит от описания, не красиво, но работает.
источник
Я пробовал только в GNU sed но
это сработало (используйте sort / uniq, как вам нравится).
источник