Іноді доводиться працювати назад ... спочатку знайдіть усі необов'язкові залежності, потім перехресне посилання з повним списком, а потім використовуйте uniq. Це створить список встановлених необов'язкових залежностей.
Знайдіть усі встановлені
pacman -Q
Знайти всі необов’язкові:
pacman -Qent
Тому унікальні записи повинні бути необов’язковими:
(pacman -Q; pacman -Qent) | sort | uniq -u
Створення списку відсутніх необов'язкових залежить від описів, не дуже, але це працює.
pacman -Q > /tmp/paccache; for pkg in $(awk '{print $1}' /tmp/paccache); do pacman -Qi $pkg | grep "^Optional Deps" | grep -v None >/dev/null && echo $pkg >> /tmp/hasdeps; done
for pkg in $(awk '{print $1}' /tmp/hasdeps); do echo -ne "Package: $pkg ___ "; (pacman -Qi $pkg | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1) | grep -v installed; echo ___; done | grep -v "___ ___" | sed -e 's/Optional Deps/ /' -e 's/___//' | sed -e 's/ \+/ /g'