# Debian Package Search Help Page

This tool is aimed to help you find the packages you need. It should make the task of searching a pleasant experience. Originally I designed it for the purpose of finding a single package where you have a clear imagination of what you want. But you can also use it to simply browse and explore your packages. Perhaps there is something in the database that you simply must have :-).
The program is not meant to be a package managment tool like synaptic, though it is capable of installing individual packages.

## The User Interface

The main window is split into two parts:

1. The upper part where you can enter the search you want to perform.
2. The lower part which shows the results of your current search on the left, and information about the selected package on the right

The different types of search and informations available are offered by plugins. Every plugin offers a number of different search and information types. In the following we will take a closer look on the search types offerd by the plugins distributed with the application.

### A More Detailed View on the Search

In the upper pane you can enter the search criterias you want to search for. The result consists of the packages which match all your active searches. All the active searches are shown in the top left pane, so you always have an overview over the active search.

By default there are five main criterias you can use for searching:

Search by Categories
(Debtags Search)

The main idea here is, that every package is characterised by a number of categories called tags. The tags are organised in a hierarchy, where each tag is inside a so called facet (group of categories).
Each package is given a number of such tags. E.g. the image editor gimp has among others the tags: `interface::x11, works-with-format::jpg, uitoolkit::gtk, use::editing`. As tagging is still under development not all packages might be tagged completely, and some may not be tagged as you would expect them to be.
You can select the tags you want to search for on the right side under the page Debtags. To select a tag simply double-click it.
The currently selected tags will be shown on the left side. They can be removed by double-clicking them or by using the context menu.
In the list on the right side only the tags that will not produce an empty search result will be shown (this calculation does not take other types of search into account yet). So if you select a tag, the list of tags on the right will be significantly reduced.

Search Similar Packages
(Similar Search)

You can search for packages similar to another package using this search. To do this select the tab Similar in the top-right pane. The search will find packages similar to the one you select. Similarity is calculated based on how similar the descriptions and other aspects are.

This plugin calculates scores for the result packages, based on the degree of similarity.

Search by Pattern
(Apt Search)

On the left side below the Search for pattern text you can enter on or more patterns seperated by a spaces. If the "Search Descriptions" option is not checked, only the package names will be searched for the patterns, otherwise the descriptions will be searched too. All the patterns you have entered must be found.
You can search for exact phrases enclosing them with double quotes and you can exclude patterns or phrases by preceding them with a minus ('-'). The use of wildcards or regular expressions is not supported.
Note: The search uses an index of the packages as backend. This database should get updated on a weekly bases (see apt-xapian-index for more details). So the search results might not contain the latest changes to the archive.

This search calculates scores based on how well the search patterns where matched. Exact matches and a high number of matches results in higher scores.

Search by Filename
(Filename Search)

With this search you can search for patterns in filenames contained in the packages. You can enter the pattern on the right side under the page Filenames. You can check the search installed packages only option if you want to search only in the packages locally installed. This is generally faster than searching all packages.
Additional information: Searching installed packages only uses `dpkg -S` as backend, while searching all packages uses `apt-file search`.

Search Orphans (Orphan Search) | This search allows to search for orphaned packages. Orphaned packages are packages, were no other package depends on. Additional information: The orphan search uses `deborphan` as backend so make sure it is installed on your system.

Additionally you can select to search the installed, upgradable or not installed packages only.

### The Result View

The bottom left pane shows the results of your current search. The result contains the packages matching all the searches you have specified. The packages are shown with some short information in the list on the left.
If you select a package you can view its details in the bottom right pane. You can either select a package from the result list, or choose it from the dropdown list above the package information.
The result list contains a special column named Scores. This column shows a value, indicating how likely it is, that you where searching for this package. To sort by scores, simply click on the head of the column (like you can do it with all the other columns). The scores are calculated based on criterias offered by the plugins. This can be based on the degree of a match between an active search and the packages found, or data independend of the search (like popcon data).
You can right-click on a package (request a context menu) in the result and choose an action to perform on it (like installing and removing).

## Configuring Debian Package Search

Different settings can be customized for packagesearch. The main settings dialog can be reached through the Packagesearch -> Preferences menu.

The columns displayed in the list on the bottom left can be modified by selecting Customise Columns from the context menu of the list. The order can be changed through drag-and-drop.

All settings made within packagesearch are be saved in the file $HOME/.packagesearch.

## The Plugin System

Plugins can be controlled through the plugin menu. They can be enabled/disabled through Plugins -> Control Plugins.

The following table shows the plugins distibuted with the application. For information about external plugins consult the documentation distributed together with those. The table lists the search and information types offered by the plugins.

Apt Plugin

- search by pattern
- calculate scores based on how well the packages match the search patter
- show package description
- show information like author, installed version, available version etc in the detailed section
- search by installed status
- show installed status in the package list (i inidicates installed, and u upgradable)
- allows to install and remove packages

Debtags Plugin

- search by tags
- search packages similar to an other
- calculate scores based on how similar the packages are to the selected one
- show the tags for packages in the detailed section

Filename Plugin

- search by filenames
- show filenames for packages
  The filenames for the packages are displayed in the bottom right under the Files tab. It is possible to view the files by double clicking on their entry or by choosing View file from the context menu. Viewing files depends on the settings in your mailcap file (`$HOME/.mailcap` and `/etc/mailcap`).

Orphan Plugin

- search for orphaned packages

Screenshot Plugin

- displays screenshot for the selected package
  Screenshots are loaded from http://screenshots.debian.net

### Other Plugin Specific Notes

#### Debtags Plugin

To reduce the complexity of the list of tags, you can hide facets (groups of categories) you are not interested in. Go to Packagesearch -> Preferences and select the Debtags tab there.

#### Apt-File Plugin

From time to time you should update the file database which is used to perform searches for files. It can be updated either via the command line (`apt-file update`) or using the GUI choosing System->Update File Database.

If you have further questions please contact me at bensmail@gmx.net.

Date: 2012-05-12