Navegue pelos aplicativos do Ubuntu pela linha de comando

4

Eu posso navegar no Ubuntu Softwares no Gnome-Software. E eles são muito bem catalogados. Eu estou procurando uma versão CLI disso. Ou seja, eu gostaria de procurar aplicativos do terminal onde eu poderia listar todos os aplicativos em uma categoria específica (digamos, jogos).

Por que estou procurando por isso?

Se eu pudesse pesquisar aplicativos do terminal, os resultados da pesquisa poderiam ser altamente personalizados usando ferramentas como grep , awk etc ...

    
por Severus Tux 22.06.2016 / 06:28

2 respostas

4

Já existe o comando apt-cache dumpavail , que listará todos os pacotes disponíveis de todos os repositórios ativados. Nos bastidores, ele realmente lê arquivos armazenados no diretório /var/lib/apt/lists/ (eu fiz strace do comando, e é isso que a saída mostra). Meu palpite é que o Gnome Software analisa esses mesmos arquivos e os organiza em categorias.

O problema é que os dados reais têm linhas que começam com Package: para nomes de pacotes e Section: a que pertencem, mas Section: linhas não são organizadas exatamente da mesma forma que no Software Gnome. No entanto, com um pouco de magia de linha de comando, podemos chegar perto de algo assim. O que eu proponho é uma função

filter_sections()
{
  apt-cache dumpavail | \
  awk -v SEARCH="$@" '/^Package:/{ PKG=$0  }\
    /Section:/ && $0~SEARCH {printf PKG" "$0"\n"}'
}

Com essa função, podemos listar todos os pacotes por seções, por exemplo:

$ filter_sections web | head                                                   
Package: apache2 Section: web
Package: awstats Section: web
Package: curl Section: web
Package: heat-api Section: web
Package: heat-api-cfn Section: web
Package: heat-api-cloudwatch Section: web
Package: heat-common Section: web
Package: heat-engine Section: web
Package: javascript-common Section: web
Package: libapache2-mod-apparmor Section: web

O código em si é bem simples: passamos a saída de apt-cache dumpavail para awk , que armazena cada nome de pacote em um varialbe, e se a linha Section: também contém uma string que estamos combinando, imprima o nome do pacote e a seção.

Quanto a listar as seções em si, também é bastante fácil

apt-cache dumpavail | awk '/Section:/' | sort | uniq 

O que também é bom nessa abordagem é que alguns dos Sections mencionam a qual repositório o pacote pertence, por exemplo, universe/python ou multiverse/web . A função, no entanto, irá procurar por todos e por eles, mas se desejar, podemos sempre filtrar com awk ainda mais

    
por Sergiy Kolodyazhnyy 22.06.2016 / 09:08
1

Você provavelmente está procurando por aptitude . Se isso não estiver instalado em seu sistema, vá em frente e abra um terminal e digite sudo apt-get install aptitude then sudo aptitude para iniciá-lo.

Se você quiser pesquisar e filtrar resultados com grep , use sudo apt-cache search ou sudo aptitude search

    
por Squall5668 22.06.2016 / 07:02