usando a pesquisa apt-cache

10

Estou aprendendo a usar o apt. Quando eu faço um apt-cache search git para ver todos os pacotes correspondentes ao git, vejo um monte de pacotes cujas descrições não têm nada a ver com o git. Por que isso acontece e como posso corrigi-lo? (Ubuntu 12.04.2 LTS).

Além disso, por que a funcionalidade de pesquisa é encontrada em um comando que possui "cache" em seu nome? O que a funcionalidade de pesquisa tem a ver com caches?

Obrigado.

Jason Posit
fonte

Respostas:

12

Se você deseja apenas pesquisar por nome, use o --names-onlyargumento Para mais informações, leia o man apt-cache, seria útil.

ssoto
fonte
6

Ao executar um apt-cache search <package name>comando, você está executando uma consulta nas informações armazenadas em sua máquina local para obter os pacotes disponíveis. Este é o cache dos seus repositórios "inscritos". Ou seja, o comando está executando uma consulta nos repositórios que você configurou no USC (Ubuntu Software Center) ou no Synaptic.

De acordo com a apt-cachepágina do manual, /etc/apt/sources.listé o local para buscar informações na consulta. Existem alguns locais adicionais para outros tipos de informações de pacotes. Veja man apt-cachepara mais detalhes.

Basicamente, a execução apt-cache search gitretornará todas as instâncias de pacotes disponíveis que contenham a sequência de palavras "git" no nome do pacote e na descrição do pacote.

Por exemplo, isso significa que qualquer pacote que possa conter a sequência de palavras "git", como a palavra "di git al", em sua descrição também será retornado como resultado. Observe o negrito na frase anterior.

Se você estiver interessado apenas nos pacotes que estão especificamente preocupados com o git - o gerenciador de controle de origem, será necessário restringir sua consulta ao uso de uma expressão regular para tornar os resultados da pesquisa mais restritivos.

Por exemplo:

sudo apt-cache search ^git$

retornará resultados que contenham explicitamente apenas a frase "git" no nome do pacote.

Por exemplo:

sudo apt-cache search ^git$
git - fast, scalable, distributed revision control system

O comando: sudo apt-cache search ^git

retornará resultados para pacotes que começam com a frase "git":

Por exemplo:

sudo apt-cache search ^git
git - fast, scalable, distributed revision control system
git-core - fast, scalable, distributed revision control system (obsolete)
git-doc - fast, scalable, distributed revision control system (documentation)
git-man - fast, scalable, distributed revision control system (manual pages)
gitk - fast, scalable, distributed revision control system (revision tree visualizer)
easygit - git for mere mortals
gforge-plugin-scmgit - Git plugin for FusionForge (transitional package)
git-all - fast, scalable, distributed revision control system (all subpackages)
git-annex - manage files with git, without checking their contents into git
git-arch - fast, scalable, distributed revision control system (arch interoperability)
...

Dito isso, você precisará ajustar suas consultas ao cache do pacote para ser mais específico ao seu interesse. Espero que isto ajude.

Kevin Bowen
fonte
" apt-cache search ^git$retornará apenas resultados que contenham" git "no nome do pacote". Eu não entendo isso, porque, por exemplo git-man(da segunda saída que você postou) também contém git. Você pode explicar o que significam o sinal de intercalação e os símbolos $? Eu sei que o sinal de intercalação significa "começa com", mas isso contradiz a segunda saída que você postou (saída de ^git), porque está retornando easygit=).
Alaa Ali
Oooh. Os ^meios significa pacotes e descrições que começam com git. Ok, a segunda saída é entendida. Então, o que ^git$retorna? Pacotes que começam com gite ...?
Alaa Ali
@Alaa Pense nos caracteres "^" e "$" como âncoras da sua consulta. apt-cache search ^git$retornará, especificamente, o pacote git. apt-cache search ^gitretornará pacotes que começam com a frase "git" e serão menos específicos.
Kevin Bowen
Pode-se obter um resultado de pesquisa mais generalizado executando a consulta apt-cache search ^ git? `
Kevin Bowen
Para se ter uma saída mais colorido, pode-se melhorar o seu comando comapt-cache search ^git | grep --color git
Georg
0

Esta é uma resposta indireta à sua pergunta, mas ainda está relacionada a ela, pois é sobre gerenciamento de pacotes. Eu pessoalmente uso o aptitude em vez do apt-get. aptitude é o equivalente sináptico ao terminal.

Procurar,

sudo aptitude search $keyword

Outros comandos

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

Para instalar o aptitude,

sudo apt-get install aptitude
llt
fonte
Lembre-se de que o aptitude ainda pode ser problemático em sistemas multiarch - portanto, não há problema em usá-lo para consultas / pesquisas, mas não para instalar / remover pacotes.
guntbert
help.ubuntu.com/community/MultiArch explica como o aptitude pode ser usado para preocupações com várias tarefas
llt
Essa página apenas menciona aptitude why- como eu disse "use-a para consultas" - a página também é muito antiga (editada em 08/02/2012) - então meu aviso ainda permanece.
guntbert
Entendo. Como sou um usuário do aptitude, você pode me indicar um artigo em que ele diz que é um problema no sistema multiarch? Talvez eu precise voltar para o apt-get então.
llt 23/05
bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768 , parece ter sido corrigido recentemente. Eu ainda sou cauteloso. Debian recomenda apt-get demasiado (docs para wheezy)
guntbert
0

Instale o apt-xapian-index e use a pesquisa axi-cache ao pesquisar em vez do apt - cache. Você obterá resultados muito melhores

zaonline
fonte