Używam arch Linux.
Czy istnieje sposób na wyświetlenie listy opcjonalnych zależności wszystkich zainstalowanych pakietów? A jeśli tak, czy mogę przefiltrować tę listę, aby zobaczyć tylko brakujące (niezainstalowane) pakiety?
arch-linux
pacman
vonPetrushev
źródło
źródło
pacman -Qi | grep "Optional Deps" | grep -v None | grep -v installed
Odpowiedzi:
Możesz użyć expac do zapytania do
pacman
bazy danych.Coś jak:
wypisze listę wszystkich zainstalowanych pakietów na twoim komputerze i
optdepends
dla każdego z nich (%O
) 1 do pliku o nazwieoptdeps
. Następnie możesz posortować to na liście zainstalowanych pakietów optdepends.Zobacz
man expac
pełną listę opcji.1. To jest wielka litera O, a nie zero. Ponieważ nie możemy mieć czcionki, która odróżniałaby te dwa ...
źródło
Ładne narzędzie znajduje się w repozytorium AUR (aur / pacdep).
pacdep ma wiele opcji - tylko jeden przykład - znajdź opcjonalne pakiety dla „thunar-archive-plugin”:
Powyższe dane wyjściowe oznaczają, że żaden z opcjonalnych pakietów nie jest zainstalowany. Po zainstalowaniu „xarchiver” wygląd wygląda jak
Znalazłem (pierwszą część) tę odpowiedź na
http://mywaytoarch.tumblr.com/post/34979742718/easily-list-package-dependencies
źródło
Nie jest to do końca wydajne, ale znajdziesz to, czego chcesz (w KOLORZE!):
źródło
||
zamiast&&
pogrep
, a potem nawiasach wokół reszty linii?pacman -Qi xmms2 | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1 | cut -c19- | cut -d: -f1
Chociaż zauważyłem, że rozwiązanie @ DarkHeart tak naprawdę nie działa, zainspirowało mnie do stworzenia działającego. (bez kolorów)
Używam zapytania pakietowego , podobnego narzędzia zamiast expac, które zostało zasugerowane przez @jasonwryan, ponieważ już go zainstalowałem (to zależność od twojego). To powinno być trywialne, aby to zmienić, aby zamiast tego używać EXPAC.
Lista wszystkich opcjonalnych zależności odbywa się głównie przez wywołanie zapytania-pakietu. Pierwsza pętla for usuwa wyjaśnienia, więc pozostają tylko nazwy pakietów dla opcjonalnych zależności; druga pętla for usuwa już zainstalowane zależności w pierwszym wierszu przed wydrukowaniem wyników w drugim.
źródło
To powinno załatwić sprawę:
Pierwsze wejście do
comm
listy wszystkich opcjonalnych zależności, drugie wejście do wszystkich zainstalowanych pakietów i ich atrybutów „dostarczyć”. Obie listy są posortowane i zawierają każdy element tylko razsort -u
. Następnie wyświetlane są tylko wiersze zawarte na pierwszej, ale nie na drugiej liście.(edytowane w celu uwzględnienia sugestii @ Archemar)
źródło
Czasami musisz pracować wstecz ... najpierw znajdź wszystko, co nie jest opcjonalne, a następnie odwołaj się do pełnej listy, a następnie użyj uniq. To wygeneruje listę zainstalowanych opcjonalnych zależy.
Znajdź wszystkie zainstalowane
Znajdź wszystkie nie opcjonalne:
Unikalne wpisy muszą zatem być opcjonalne:
Wygeneruj listę brakujących opcjonalnych zależy od opisów, nie ładne, ale to działa.
źródło
Próbowałem tylko w GNU sed, ale
to zadziałało (Użyj sort / uniq, jak chcesz).
źródło