za pomocą wyszukiwania apt-cache

11

Uczę się, jak korzystać z apt. Kiedy robię i apt-cache search git widzę wszystkie pakiety pasujące do git, widzę kilka pakietów, których opisy nie mają nic wspólnego z git. Dlaczego tak jest i jak mogę to naprawić? (Ubuntu 12.04.2 LTS).

Ponadto, dlaczego funkcja wyszukiwania znajduje się w poleceniu, które ma w nazwie „cache”? Co funkcja wyszukiwania ma wspólnego z pamięcią podręczną?

Dzięki.

Jason Posit
źródło

Odpowiedzi:

13

Jeśli chcesz wyszukiwać tylko według nazwy, użyj --names-onlyargumentu. Aby uzyskać więcej informacji, przeczytaj man apt-cache, byłoby to przydatne.

ssoto
źródło
6

Podczas wykonywania apt-cache search <package name>polecenia wykonuje się zapytanie dotyczące informacji przechowywanych na komputerze lokalnym dla dostępnych pakietów. To jest pamięć podręczna z „subskrybowanych” repozytoriów. Oznacza to, że polecenie wykonuje zapytanie względem repozytoriów skonfigurowanych w USC (Centrum oprogramowania Ubuntu) lub Synaptic.

Według apt-cachestrony /etc/apt/sources.listpodręcznika jest to lokalizacja, z której można pobrać informacje z zapytania. Istnieje kilka dodatkowych lokalizacji dla innych rodzajów informacji o paczce. Zobacz man apt-cachepo więcej szczegółów.

Zasadniczo uruchomienie apt-cache search gitzwróci wszystkie wystąpienia dostępnych pakietów zawierających sekwencję słów „git” w nazwie pakietu, a także w opisie pakietu.

Na przykład oznacza to, że każde opakowanie, które może zawierać w sobie sekwencję słów „git”, podobnie jak słowo „di git al”, w swoim opisie również zostanie zwrócone. Zwróć uwagę na pogrubienie w poprzednim zdaniu.

Jeśli interesują Cię tylko pakiety, które są konkretnie związane z git - menedżerem kontroli źródła, musisz ograniczyć zapytanie do użycia wyrażenia regularnego, aby wyniki wyszukiwania były bardziej restrykcyjne.

Na przykład:

sudo apt-cache search ^git$

zwróci wyniki, które jawnie zawierają tylko frazę „git” w nazwie pakietu.

Na przykład:

sudo apt-cache search ^git$
git - fast, scalable, distributed revision control system

Komenda: sudo apt-cache search ^git

zwróci wyniki dla pakietów rozpoczynających się od frazy „git”:

Na przykład:

sudo apt-cache search ^git
git - fast, scalable, distributed revision control system
git-core - fast, scalable, distributed revision control system (obsolete)
git-doc - fast, scalable, distributed revision control system (documentation)
git-man - fast, scalable, distributed revision control system (manual pages)
gitk - fast, scalable, distributed revision control system (revision tree visualizer)
easygit - git for mere mortals
gforge-plugin-scmgit - Git plugin for FusionForge (transitional package)
git-all - fast, scalable, distributed revision control system (all subpackages)
git-annex - manage files with git, without checking their contents into git
git-arch - fast, scalable, distributed revision control system (arch interoperability)
...

To powiedziawszy, będziesz musiał dostroić zapytania dotyczące pamięci podręcznej pakietów, aby były bardziej dostosowane do twoich zainteresowań. Mam nadzieję że to pomoże.

Kevin Bowen
źródło
apt-cache search ^git$zwróci tylko wyniki zawierające„ git ”w nazwie pakietu”. Nie rozumiem tego, ponieważ na przykład git-man(z drugiego opublikowanego wyjścia) również zawiera git. Czy możesz wyjaśnić, co oznaczają symbole daszka i $? Wiem, że daszek oznacza „zaczyna się od”, ale wtedy jest to sprzeczne z drugim wyjściem, które opublikowałeś (wyjściem ^git), ponieważ zwraca easygit=).
Alaa Ali
Oooch Te ^pakiety oznaczają i opisy , które zaczynają git. Okej, drugie wyjście jest zrozumiałe. Co więc ^git$powraca? Pakiety zaczynające się od giti ...?
Alaa Ali
@Alaa Pomyśl o znakach „^” i „$” jako zakotwiczeniach w zapytaniu. apt-cache search ^git$zwróci konkretnie pakiet git. apt-cache search ^gitzwróci pakiety zaczynające się od wyrażenia „git” i będą mniej szczegółowe.
Kevin Bowen
Można uzyskać bardziej ogólny wynik wyszukiwania, uruchamiając zapytanie apt-cache search ^ git? `
Kevin Bowen
Aby uzyskać bardziej kolorowe wydruki, możesz ulepszyć swoje polecenie za pomocąapt-cache search ^git | grep --color git
georg
0

To jest pośrednia odpowiedź na twoje pytanie, ale nadal z nim związana, ponieważ dotyczy zarządzania pakietami. Osobiście używam aptitude zamiast apt-get. aptitude jest synaptycznym odpowiednikiem terminala.

Szukać,

sudo aptitude search $keyword

Inne polecenia

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

Aby zainstalować aptitude,

sudo apt-get install aptitude
llt
źródło
Należy pamiętać, że aptitude może nadal stanowić problem w systemach wielościennych - więc można go używać do zapytań / wyszukiwań, ale nie do instalowania / usuwania pakietów.
guntbert
help.ubuntu.com/community/MultiArch wyjaśnia, w jaki sposób umiejętności mogą być wykorzystane do wieloarchitekturowości obaw
LLT
Ta strona wspomina tylko aptitude why- jak powiedziałem „używaj jej do zapytań” - strona też jest dość stara (edytowana 08.02.2012) - więc moje ostrzeżenie nadal obowiązuje.
guntbert
Widzę. Jestem użytkownikiem aptitude, więc czy możesz wskazać mi artykuł, w którym napisano, że jest problematyczny w systemie wielodostępowym? W takim razie być może będę musiał wrócić do apt-get.
2013
bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768 , wydaje się, że został niedawno naprawiony. Nadal jestem ostrożny. Debian zaleca także apt-get (docs dla wheezy)
guntbert
0

Zainstaluj apt-xapian-index i użyj wyszukiwania axi-cache podczas wyszukiwania zamiast apt - cache. Otrzymasz znacznie lepsze wyniki

zaonline
źródło