Với số lượng lớn và ngày càng tăng của phần mềm trong Debian, xuất hiện một nghịch lý: Debian thường có một công cụ cho hầu hết các tác vụ, nhưng công cụ này rất khó có thể tìm thấy trong vô số các gói khác. Việc thiếu các cách thích hợp để tìm kiếm (và để tìm) đúng công cụ từ lâu đã là một vấn đề. May mắn thay, vấn đề này đã gần như hoàn toàn được giải quyết.
Tìm kiếm đơn giản nhất là tìm kiếm một tên gói chính xác. Nếu apt hiển thị package
trả về kết quả, thì gói đó tồn tại. Tuy nhiên, điều này đòi hỏi phải biết hoặc thậm chí đoán tên gói, không phải lúc nào cũng có thể.
Mẫu tìm kiếm thành công hơn một chút là tìm kiếm văn bản thuần bằng tên gói, nhưng nó vẫn còn rất hạn chế. Bạn thường có thể tìm thấy kết quả bằng cách tìm kiếm mô tả gói: vì mỗi gói có một mô tả chi tiết hơn hoặc thêm vào tên gói của nó, một tìm kiếm từ khóa trong những mô tả này thường rất hữu ích. apt-cache
và axi-cache
là những công cụ được lựa chọn cho loại tìm kiếm này; Ví dụ, apt-cache search video
sẽ trả lại danh sách tất cả các gói có tên hoặc mô tả chứa từ khóa “video“.
Đối với tìm kiếm phức tạp hơn, cần có một công cụ mạnh hơn như aptitude
. aptitude
cho phép bạn tìm kiếm theo một biểu thức logic dựa trên các trường dữ liệu meta của gói. Ví dụ: lệnh sau đây tìm kiếm các gói có tên chứa kino
, mô tả chứa video
và tên của người quản trị có chứa 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
Tìm kiếm chỉ trả về một gói, kino, đáp ứng cả ba tiêu chí.
Ngay cả những tìm kiếm nhiều tiêu chí này cũng khá khó sử dụng, điều này lý giải tại sao chúng không được sử dụng nhiều. Do đó, một hệ thống gắn thẻ mới đã được phát triển và nó cung cấp cách mới để tìm kiếm. Gói được cho các thẻ cung cấp sự phân loại theo nhiều chủ đề, được gọi là “phân loại dựa trên khía cạnh“. Trong trường hợp kino ở trên, các thẻ của gói cho thấy rằng Kino là một phần mềm dựa trên nền Gnome hoạt động trên dữ liệu video và có mục đích chính là chỉnh sửa.
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:
Chọn thẻ works-with:: video
và use :: editing
mang lại một số ít các gói, bao gồm trình biên tập video kino và pitivi. Hệ thống phân loại này chắc chắn sẽ được sử dụng ngày càng nhiều, và quản lý gói sẽ dần dần cung cấp các giao diện tìm kiếm hiệu quả dựa trên nó.
Tóm lại, công cụ tốt nhất cho công việc phụ thuộc vào sự phức tạp của tìm kiếm mà bạn muốn thực hiện:
apt-cache
chỉ cho phép tìm kiếm trong các tên gói và mô tả, rất tiện lợi khi tìm kiếm một gói cụ thể phù hợp với một vài từ khóa mục tiêu;
Khi các tiêu chí tìm kiếm cũng bao gồm các mối quan hệ giữa các gói hoặc các mô tả dữ liệu khác như tên của người duy trì, synaptic
sẽ hữu ích hơn;
Khi cần tìm kiếm dựa trên thẻ, có thể sử dụng công cụ packagesearch
, một giao diện đồ hoạ dành riêng cho việc tìm kiếm các gói có sẵn dọc theo một số tiêu chí (bao gồm tên của các tệp tin chứa trong đó). Để sử dụng trên dòng lệnh, axi-cache
sẽ phù hợp hơn.
Cuối cùng, khi các tìm kiếm liên quan đến các biểu thức phức tạp với các toán tử logic, công cụ được lựa chọn sẽ là cú pháp mẫu tìm kiếm của aptitude
, nó khá mạnh mẽ mặc dù đôi khi không rõ ràng; Nó hoạt động trên cả hai chế độ dòng lệnh và chế độ tương tác.