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.

Respostas:


12

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


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.


" 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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.