6.10. 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.
The most trivial search possible is looking up an exact package name. If apt show package
returns a result, then the package exists. Unfortunately, this requires knowing or even guessing the package name, which isn't always possible.
A slightly more successful searching pattern is a plain-text search in package names, but it remains very limited. You can generally find results by searching package descriptions: since each package has a more or less detailed description in addition to its package name, a keyword search in these descriptions will often be useful.
apt-cache
and
axi-cache
are the tools of choice for this kind of search (see
ALTERNATYWA axi-cache
); for instance,
apt-cache search video
will return a list of all packages whose name or description contains the keyword “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
Version: 1.3.4+dfsg0-1
State: not installed
Priority: optional
Section: video
Maintainer: Paul Brossier <piem@debian.org>
Architecture: amd64
Uncompressed Size: 8,304 k
Depends: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0 (>= 0.5.3), libavcodec58 (>=
7:4.0) | libavcodec-extra58 (>= 7:4.0), libavformat58 (>= 7:4.0), libavutil56 (>= 7:4.0),
libc6 (>= 2.14), libcairo2 (>= 1.2.4), libdv4 (>= 1.0.0), libfontconfig1 (>= 2.12.6),
libfreetype6 (>= 2.2.1), libgcc1 (>= 1:3.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglade2-0
(>= 1:2.6.4-2~), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.24.32), libice6 (>= 1:1.0.0),
libiec61883-0 (>= 1.2.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0),
libpangoft2-1.0-0 (>= 1.14.0), libquicktime2 (>= 2:1.2.2), libraw1394-11, libsamplerate0
(>= 0.1.7), libsm6, libstdc++6 (>= 5.2), libswscale5 (>= 7:4.0), libx11-6, libxext6,
libxml2 (>= 2.7.4), libxv1, zlib1g (>= 1:1.1.4)
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: field::arts, hardware::camera, implemented-in::c, implemented-in::c++, interface::graphical,
interface::x11, role::program, scope::application, suite::gnome, uitoolkit::gtk,
use::editing, use::learning, 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ż.
Browsing this classification can help you to search for a package which corresponds to known needs; even if it returns a (moderate) number of hits, the rest of the search can be done manually. To do that, you can use the
~G
search pattern in
aptitude
, but it is probably easier to simply navigate the site where tags are managed:
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.