با توجه به حجم عظیم و رو به افزایش نرمافزار در دبیان، تضادی بوجود میآید: دبیان معمولا برای هر کاری یک ابزار مناسب دارد، اما یافتن همین ابزار از میان سایر گزینههای مشابه کاری دشوار است. عدم وجود روشی مناسب برای جستجو (و یافتن) ابزار مناسب خود به یک معضل در طی سالها تبدیل شده است. خوشبختانه، این مشکل تقریبا از میان رفته است.
مختصرترین شیوه جستجو استفاده از نام دقیق بسته است. اگر apt show package
نتیجهای بازگرداند، آنگاه بسته موجود است. متاسفانه، این امر مستلزم دانستن یا حدس زدن نام بسته است، که همیشه مقدور نیست.
الگوی دیگر جستجو برای بستهها، استفاده از جستجو plain-text در نام بستهها است، اما به صورت خیلی محدود کار میکند. معمولا میتوانید با استفاده از توضیحات بسته نیز به جستجو بپردازید: از آنجایی که هر بسته شامل توضیحات کم و بیش راجع به نام بسته میباشد، جستجوی کلیدواژه در این مورد میتواند کاربردی باشد. apt-cache
و axi-cache
ابزار انتخابی برای این شیوه جستجو هستند؛ برای نمونه، apt-cache search video
به جستجو بستههایی میپردازد که در نام یا توضیح خود کلیدواژه “video” را دارا باشند.
برای جستجوهای پیشرفتهتر، ابزار پیشرفتهتری مانند aptitude
مورد نیاز است. aptitude
اجازه جستجو منطقی در تمام فیلدهای meta-data را میدهد. برای نمونه، دستور زیر به جستجوی بستههایی میپردازد که نامشان شامل kino
، توضیحشان شامل video
و نام نگهدارندهاش شامل 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
جستجو تنها یک نتیجه بازگرداند، kino که با تمام شرایط فوق سازگار بود.
حتی این جستجوهای چند شرطی نیز آنطور که باید استفاده نمیشوند، که توضیح خوبی برای عدم فراگیر شدنشان میباشد. یک سیستم جدید برچسبگذاری به تازگی توسعهیافته است که رویکرد جدیدی در جستجو را ارائه میدهد. بستهها به صورتی برچسبگذاری میشوند که به آن “facet-based classification” میگویند. در مورد kino، برچسبهای آن میگویند که kino یک نرمافزار مبتنی بر GNOME است که با دادههای تصویری کار کرده و هدف اصلی آن ویرایش است.
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:
انتخاب works-with::video
و use::editing
منجر به جستجو بستههای مرتبط میگردد، که شامل kino و pitivi نیز میشود. این سیستم طبقهبندی روز به روز بیشتر مورد استفاده قرار میگیرد و مدیر بستهها نیز به مرور رابطهای جستجوی کاربردیتری را برای آن فراهم میکنند.
در نتیجه، بهترین ابزار برای اینکار بستگی به پیچدگی جستجو مورد نظر شما دارد:
apt-cache
تنها اجازه جستجو در نام و توضیحات بسته را میدهد، که برای یافتن بستهای خاص با دانستن اطلاعات آن بسیار کاربردی است؛
زمانی که شرایط جستجو شامل روابط بین بستهها و meta-data آنها شود، synaptic
کاربردیتر خواهد بود؛
زمانی که جستجو بر اساس برچسب مورد نیاز باشد، یک ابزار خوب packagesearch
است، رایط گرافیکی که امکان جستجو بر اساس برچسبها و موارد دیگر را فراهم میکند (مانند نام فایلی که آن را در بر دارد). برای استفاده در خط فرمان، axi-cache
انتخاب مناسبی است.
در نهایت، زمانی که جستجو شامل عبارتهای پیچیده و عملگرهای منطقی باشد، ابزار مورد انتخاب، الگوی جستجو در aptitude
است که با وجود عجیب بودنش بسیار قدرتمند است؛ در هر دو حالت خط فرمان و تعاملی نیز کار میکند.