Jak mogę uzyskać listę wszystkich pakietów w sekcji repozytorium z wiersza poleceń?


13

W Synaptic można wyświetlać pakiety według sekcji. Na przykład na poniższym obrazku wymieniono wszystkie pakiety sekcji „Radio amatorskie (wszechświat)”.

Jak mogę uzyskać taką listę (edytuj: z opisem pakietu) w wierszu poleceń?

Potrzebuję surowej listy; aplikacja terminalowa, jak aptitudenie zrobi.

synaptyczny


pociski wyszukiwania apt-cache
Panther

@ bodhi.zazen to dobra sugestia, ale nie przeszukuje tylko Sekcji
Steven Penny

Odpowiedzi:


5

Cóż, chociaż mówisz, że nie chcesz używać aptitude ze względu na dane wyjściowe, musisz wiedzieć, że możesz je zmodyfikować, aby uzyskać to, co lubisz:

aptitude -F'|%p|%d|' search '?section(hamradio)'

Sztuką jest -Fprzełącznik, który modyfikuje format wyjściowy. %poznacza paczkę. Wynika to również, gdy pakiet ma różne architektury (tj. Amd64 vs i386), i %dktóry wyprowadza opis. Możesz jeszcze bardziej spersonalizować wzorzec wyszukiwania, na przykład dla niezainstalowanych pakietów:

aptitude -F'|%p|%d|' search '?section(hamradio) !~i'

gdzie ~ioznacza zainstalowany, a !nie jest, więc brzmi „nie (!) zainstalowany (~ i)” lub jeśli chcesz tylko te, które są dostępne dla Twojej architektury:

aptitude -F'|%p|%d|' search '?section(hamradio) ~r native'

~rbędący tym, ?architecture()który pasuje do architektury pakietu i nativektóry zawiera tylko te, które mają tę samą architekturę co system, co jest równoważne z dpkg --print-architecture.

Poprzedni wiersz można zatem napisać jeszcze bardziej zwięźle, ponieważ:

aptitude -F'|%p|%d|' search '~s hamradio ~r native'

Bardzo elegancki, szczególnie z -F'|%p|%d|'. Czy byłoby jednak możliwe, aby nie wyświetlać listy :i386pakietów, dodając !do searchłańcucha -expression ?
Serge Stroobandt

1
@GinGordon tak, po prostu dodaj ~r nativedo wyszukiwanych haseł. ~rponieważ są one ?architecturezgodne z architekturą pakietu i nativezawierają tylko te, które mają tę samą architekturę niż system, co odpowiada dpkg --print-architecture. BTW, chciałeś listę z opisem pakietu?
Braiam

Świetny! I tak, edytowałem pytanie, aby uwzględnić opis pakietu. Edytuj odpowiednio swoją odpowiedź, a zasłużenie otrzymasz mój najlepszy głos za to, że jesteś najbardziej zwięzły.
Serge Stroobandt

@GinGordon sprawdź to.
Braiam

1
@GinGordon, jeśli zainstalujesz aptitude-docpakiet i /usr/share/doc/aptitude/html/en/index.htmlprzejdziesz do przeglądarki, znajdziesz we file:///usr/share/doc/aptitude/html/en/ch02s04s05.htmlwszystkich paskudnych dodatkach.
Braiam

11

Upewnij się, że pakiet dctrl-toolsZainstaluj narzędzia dctrl jest zainstalowany. Udostępnia przydatne polecenia do przeszukiwania list pakietów apt i dpkg. Aby uzyskać pełny opis wszystkich pakietów z określonej sekcji, które można zainstalować z apt, uruchom

grep-aptavail -F Section hamradio

Spowoduje to wyświetlenie pełnych metadanych pakietu dla każdego pakietu w hamradiosekcji. Jeśli chcesz zobaczyć tylko nazwy pakietów, uruchom

grep-aptavail -n -F Section -s Package hamradio

Jeśli Twój system jest skonfigurowany do obsługi wielu serwerów, ten sam pakiet może pojawić się więcej niż raz na tej liście, jeśli został zbudowany dla więcej niż jednej architektury. Aby dokładniej to udoskonalić, użyj jednego z nich

grep-aptavail -n -F Section -s Package hamradio | sort | uniq

lub

grep-aptavail -n -F Section -s Package hamradio | sort -u

aby posortować listę pakietów i usunąć zduplikowane pakiety o tej samej nazwie.

Pamiętaj, że będziesz musiał użyć rzeczywistej nazwy sekcji, która różni się od nazwy „czytelnej dla człowieka”, którą Synaptic pokazuje w swoim GUI. Na przykład powyższe wyszukiwania używają nazwy sekcji hamradiozamiast ciągu „Radio amatorskie” pokazanego w Synaptic.

Zobacz stronę man dla grep-aptavail, aby uzyskać pełny opis wszystkich opcji i kilka przykładów.


3

Więcej pól w jednym wierszu z dowolnym separatorem

Poniższy linijka wydrukuje wszystkie unikalne nazwy pakietów sekcji repozytorium wraz z ich opisem, każda w jednym wierszu. Wszystkie pola są oddzielone znakiem potoku, tj. Gotowe do konwersji na tabelę potoków Markdown . Wynikające tabeli można znaleźć na mojej stronie internetowej.

grep-aptavail -n -s Package,Description -F Section hamradio |paste -sd '||\n' |sed 's:^:|:' |sort -u

2

Możesz użyć następującego polecenia, aby uzyskać listę pakietów należących do danej sekcji:

$ dpkg-query -W -f='${binary:Package} ${Section}\n' | awk '{if ($2 == "shells") {print $1}}'
bash
bash-completion
busybox-initramfs
busybox-static
dash
zsh
zsh-common
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.