Odpowiedzi:
grep-dctrl
a jego pochodne stanowią świetny sposób na zapytanie o pliki apt cache. (Możesz zainstalować te narzędzia na Ubuntu za pomocą sudo apt-get install dctrl-tools)
W przypadku dostępnych (ale niekoniecznie zainstalowanych) pakietów możesz użyć grep-available
. Na przykład, aby wyświetlić listę wszystkich dostępnych pakietów:
grep-available -s Package .
Edytować:
aptitude
może wyświetlić listę niezainstalowanych pakietów, po prostu uruchamiając ją.
Możesz również uzyskać listę niezainstalowanych pakietów aptitude
, używając:
aptitude -F "%p" search "?not(?installed)"
Zauważ, że dzięki nowym pakietom multi-arch otrzymasz pakiety dla innych architektur wymienionych w tym wyniku. Na przykład otrzymuję:
aptitude -F "%p" search "?not(?installed)" | grep "^bash:"
bash:i386
Mam bash
zainstalowany pakiet, ale jest to wersja amd64, ponieważ mój system operacyjny jest instalowany z wersją Ubuntu Precise dla amd64. Jeśli nie chcesz widzieć tych pakietów dla innych architektur, możesz wykluczyć wiersze zawierające :
:
aptitude -F "%p" search "?not(?installed)" | grep -v ':'
apt-cache
służy do zapytania o pamięć podręczną pakietu:
apt-cache pkgnames | sortować
rzecz wyszukiwania apt-cache
apt-cache search - rzecz tylko-nazwy
code
„dpkg --get-selections | grep '[[:::]] install $' | awk '{print $ 1}' > install.txt ”i znaleziono duplikaty. Pozostałe dwa polecenia, które podałeś, nie będą działać, ponieważ nie szukam konkretnego pakietu, a raczej każdego pakietu, który nie jest aktualnie zainstalowany.
Użyj apt-cache
do tego celu:
apt-cache search package
Ponieważ apt-cache
używa tylko pamięci podręcznej pakietów w systemie, upewnij się, że ta pamięć podręczna jest aktualna:
apt-get update
Możesz także użyć tego narzędzia, apt-file
jeśli znasz nazwę pliku, który chcesz wyszukać; należy to jednak dodać do systemu. Na przykład:
apt-file search somefilename
Zwykle używam apt-cache
jednego z następujących sposobów:
apt-cache search package | sort | grep item
(To pokazuje rzeczy, które przedmiot faktycznie w ich streszczenia lub nazw.)
apt-cache search thing | sort | less
(Wyszukuje rzecz, a następnie sortuje ją w celu przyjemnego oglądania less
.)
Moim punktem widzenia jest praca z domyślnie zainstalowanymi poleceniami i unikanie dodatkowych pakietów, jeśli nie ma żadnego konkretnego powodu.
W moim Debianie z GNU bash te proste polecenia
apt list
apt list --all-versions
daje listę wszystkiego (zainstalowanego i niezainstalowanego). Następnie mogę ograniczyć wyniki z grep „Zainstalowany” lub grep -v „Zainstalowany”. Można go również łączyć z jedną lub kilkoma nazwami pakietów (akceptowane są znaki zastępcze).
Przełącznik „-all-wersje” zapewnia w danych wyjściowych osobne wiersze dla każdej wersji pakietu (stabilny, testowy, niestabilny, eksperymentalny).
Prosta „lista apt” daje tylko jedną wersję (o najwyższym priorytecie).
Biorąc ściśle swoje pytanie (chcesz wyświetlić listę niezainstalowanych pakietów), spróbuj użyć
(edytowane zgodnie z komentarzami poniżej)
# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'
Nie jestem jednak pewien dokładnej składni, ponieważ piszę to na oknie systemu Windows i nie ma możliwości sprawdzenia. Może spróbuj zmienić to, na co grep
'^ii'
raczej użyć '[ii]'
), brakuje pakietów, które są zainstalowane, ale nie skonfigurowane na przykład (jak iF
lub iH
na przykład).