6.9. Wyszukiwanie Pakietów
W ogromnej, ciągle rosnącej bazie oprogramowania dla Debiana powstaje pewien paradoks: Debian zazwyczaj ma narzędzie do wykonywania większości zadań, ale to narzędzie może być bardzo trudne do znalezienia pośród niezliczonej liczby innych pakietów. Przez długi czas brak odpowiednich sposobów wyszukiwania (i znajdowania) właściwego narzędzia był problemem. Na szczęście ten problem został niemal w całości rozwiązany.
Najprostszym możliwym sposobem jest wyszukiwanie dokładnej nazwy pakietu. Jeżeli apt-cache show pakiet
zwraca wynik, to dany pakiet istnieje. Niestety wymaga to znajomości lub nawet zgadywania nazwy pakietu, co nie zawsze jest możliwe.
Nieco bardziej pomyślnym szablonem wyszukiwania jest przeszukiwanie zwykłego tekstu w nazwach pakietów, ale jest ono bardzo ograniczone. Często można znaleźć wyniki przeszukując opisy pakietów: poza nazwą każdy pakiet ma bowiem mniej lub bardziej szczegółowy opis, wyszukiwanie słów kluczowych w tych opisach zazwyczaj również będzie użyteczne. apt-cache
oraz axi-cache
są typowymi narzędziami do tego typu szukania; na przykład apt-cache search video
zwróci listę wszystkich pakietów, których nazwy lub opisy zawierają słowo kluczowe "video".
Do bardziej złożonych wyszukiwań potrzebne jest potężniejsze narzędzie takie jak aptitude
. aptitude
pozwala na wyszukiwanie według wyrażeń logicznych bazujących na polach metadanych pakietu. Na przykład następująca komenda wyszukuje pakiety, których nazwy zawierają kino
, opisy zawierają video
, a imię opiekuna zawiera paul
:
$ aptitude search kino~dvideo~mpaul
p kino - Non-linear editor for Digital Video data
$ aptitude show kino
Package: kino
State: not installed
Version: 1.3.4-1.3
Priority: extra
Section: video
Maintainer: Paul Brossier <piem@debian.org>
Architecture: amd64
Uncompressed Size: 7936 k
Depends: libasound2 (> 1.0.24.1), libatk1.0-0 (>= 1.12.4),
libavc1394-0 (>= 0.5.3), libavcodec53 (>= 4:0.8~beta1~) |
libavcodec-extra-53 (>= 4:0.8~beta1~), libavformat53
[…]
Recommends: ffmpeg, curl
Suggests: udev | hotplug, vorbis-tools, sox, mjpegtools, lame, ffmpeg2theora
Conflicts: kino-dvtitler, kino-timfx, kinoplus
Replaces: kino-dvtitler, kino-timfx, kinoplus
Provides: kino-dvtitler, kino-timfx, kinoplus
Description: Non-linear editor for Digital Video data
Kino allows you to record, create, edit, and play movies recorded with
DV camcorders. This program uses many keyboard commands for fast
navigating and editing inside the movie.
The kino-timfx, kino-dvtitler and kinoplus sets of plugins, formerly
distributed as separate packages, are now provided with Kino.
Homepage: http://www.kinodv.org/
Tags: hardware::camera, implemented-in::c, implemented-in::c++,
interface::x11, role::program, scope::application,
suite::gnome, uitoolkit::gtk, use::editing,
works-with::video, x11::application
Wspomniane wyszukiwanie zwraca jeden pakiet, kino, który spełnia wszystkie trzy kryteria.
Niemniej jednak wyszukiwania zawierające wiele kryteriów są dość niewygodne, co tłumaczy fakt dlaczego nie są tak często używane. Niejako w odpowiedzi został stworzony nowy system znakowania, który dostarcza nowy sposób wyszukiwania. Pakietom przypisane są znaczniki o charakterze tematycznym oraz inne powiązania, znane jako "klasyfikacja fasetowa". W przypadku powyższego kino, znaczniki pakietu wskazują, że Kino jest oprogramowaniem bazującym na Gnome, pracuje z danymi wideo, a jego głównym celem jest montaż.
Przeglądanie taj klasyfikacji może pomóc w znalezieniu pakietu, który spełnia wymagane potrzeby; nawet jeżeli zwróci (znaczną) ilość wyników, pozostała część wyszukiwania może być wykonana ręcznie. W tym celu można użyć wzorca wyszukiwania
~G
w
aptitude
, ale prawdopodobnie łatwiej jest przejrzeć stronę, na której odbywa się zarządzanie znacznikami:
Wybranie znaczników works-with::video
i use::editing
zwraca ledwie kilka pakietów, włączając w to edytory wideo kino i pitivi. Ta klasyfikacja z upływem czasu ma być coraz częściej stosowana, a zarządcy pakietów będą dostarczać bazujące na niej, efektywne interfejsy wyszukiwania.
Podsumowując, najlepsze narzędzie do wykonania zadania zależy od stopnia komplikacji danego wyszukiwania:
apt-cache
pozwala tylko na wyszukiwanie w nazwach pakietów i ich opisach, co jest bardzo wygodne w przypadku szukania konkretnego pakietu, do którego pasuje kilka słów kluczowych;
kiedy kryteria wyszukiwania obejmują również powiązania pomiędzy pakietami lub inne metadane takie jak imię opiekuna, synaptic
będzie bardziej użyteczny;
kiedy potrzebne jest wyszukiwanie oparte o znaczniki, dobrym narzędziem jest packagesearch
, interfejs graficzny przeznaczony do przeszukiwania dostępnych pakietów według kilku kryteriów (włączając nazwy plików, które zawierają). W przypadku użycia linii komend najlepiej będzie pasował axi-cache
.
wreszcie, kiedy wyszukiwanie obejmuje wyrażenia złożone z operacjami logicznymi, najlepszym wyborem będzie aptitude
i jego wzorce wyszukiwania, które są potężnym narzędziem, choć nie zawsze jasnym w użyciu; działa zarówno w trybie linii komend i interaktywnym.