Product SiteDocumentation Site

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.
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.
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
Version: 1.3.4-2.2+b2
State: not installed
Priority: extra
Section: video
Maintainer: Paul Brossier <piem@debian.org>
Architecture: amd64
Uncompressed Size: 8300 k
Depends: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0
         (>= 0.5.3), libavcodec57 (>= 7:3.2.4) | libavcodec-extra57 (>=
         7:3.2.4), libavformat57 (>= 7:3.2.4), libavutil55 (>= 7:3.2.4), libc6
         (>= 2.14), libcairo2 (>= 1.2.4), libdv4 (>= 1.0.0), libfontconfig1
         (>= 2.11), 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.0), 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), libswscale4 (>= 7:3.2.4), 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, kino-dvtitler:i386, kino-timfx:i386,
           kinoplus:i386, kino:i386
Replaces: kino-dvtitler, kino-timfx, kinoplus, kino-dvtitler:i386, kino-timfx:i386,
          kinoplus:i386
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: