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.

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.


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.


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

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

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.