De acordo com o manual,
search regex...
search performs a full text search on all available package lists
for the POSIX regex pattern given, see regex(7). It searches the
package names and the descriptions for an occurrence of the regular
expression and prints out the package name and the short
description, including virtual package names. If --full is given
then output identical to show is produced for each matched package,
and if --names-only is given then the long description is not
searched, only the package name is.
[...]
--names-only, -n
Only search on the package names, not the long descriptions.
Configuration Item: APT::Cache::NamesOnly.
No entanto, me deparei com uma situação estranha:
$ apt-cache search --names-only 'kde*' | grep tkcv
tkcvs - Graphical front-end to CVS and Subversion
Por que no mundo o comando acima corresponderia a tk8.6-doc
? Braiam e passei alguns minutos conversando sobre isso e ele notou que
$ apt-cache show tkcvs | grep -i kd
Replaces: tkdiff
Provides: tkdiff
Então, Braiam sugeriu que ele está combinando com o campo Replaces
, o que faz uma certa quantidade de sentido no caso de alterar nomes de pacotes. OK então, mas e sobre:
$ apt-cache search --names-only 'kde*' | grep tk8.6
tk8.6-doc - Tk toolkit for Tcl and X11, v8.6 - manual pages
$ apt-cache show tk8.6-doc | grep -i kd
Provides: tkdoc
Conflicts: tkdoc
Aqui, ele está correspondendo aos campos Conflicts
ou Provides
e não posso distorcer o significado de --names-only
para torná-lo compatível com esses campos. Então, o que exatamente --names-only
pesquisa? São os nomes de todos os pacotes mencionados na descrição de um pacote? Obviamente, não corresponde apenas ao nome do pacote.