Como procuro um pacote?

Como procuro um pacote?

Entendo que parece uma pergunta ridícula, mas aqui está o que estou tentando fazer:Instale o servidor apache http.

Então corro apt search apachee obtenho muitos resultados.

Na verdade... apt search apache | wc -le dividindo por 3 - parece que obtive cerca de 700 resultados.

  1. Posso tentar restringir isso usando apt search apache httpe então obtenho cerca de 200 resultados e então posso rolar bastante e eventualmente aparecerá.

  2. Também posso usar apt search --names-only apachee pelo menos excluir todas aquelas coisas que apenas mencionam o apache na descrição. Isso reduz para 110 resultados.

Tudo isso parece bastante complicado e tedioso, visto que o pacote que procuro se chama "apache2". Existe alguma maneira de obter a classificação de resultados mais adequada? Ou alguma outra ferramenta que devo usar?

Responder1

Você parece saber como o pacote deve ser chamado, ou pelo menos qual deve ser parte de seu nome. apt searchnão parece ser a melhor ferramenta para esta tarefa, use apt list:

$ apt list apache\*
Listing... Done
apache2/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-bin/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-data/bionic-updates,bionic-updates,bionic-security,bionic-security 2.4.29-1ubuntu4.11 all
apache2-dbg/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-dev/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-doc/bionic-updates,bionic-updates,bionic-security,bionic-security 2.4.29-1ubuntu4.11 all
apache2-ssl-dev/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-suexec-custom/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-suexec-pristine/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-utils/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apachedex/bionic,bionic 1.6.2-1 all
apacheds/bionic-updates,bionic-updates,bionic-security,bionic-security 2.0.0~M24-2~18.04 all
apachetop/bionic 0.12.6-18build2 amd64

Deaptmanual:

listaé um pouco semelhante ao dpkg-query --listfato de poder exibir uma lista de pacotes que atendem a determinados critérios. Ele suportaglob(7)padrões para correspondência de nomes de pacotes, bem como opções para listar versões instaladas ( --installed), atualizáveis ​​​​( --upgradeable) ou todas --all-versionsas versões disponíveis ( ).

O asterisco escapado ( \*) significa que qualquer caractere pode seguir o nome. Se você não encontrar nada, considere adicionar o asterisco com escape ao início da string de pesquisa.

Tenho certeza de que você pode escolher o caminho certo nesta lista. Obviamente, o primeiro é o servidor Apache real. Selecionar o apache2pacote também instalará suas dependências automaticamente.

$ sudo apt install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  apache2-bin apache2-data apache2-utils libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0
  ssl-cert
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom openssl-blacklist

Responder2

Você poderia usar o grepcomando:

apt-cache search apache2 | grep apache2

e se você não gosta dovermelhocor do grep, basta adicionar a --color=noneopção:

apt-cache search apache2 | grep apache2 --color=none

PS: Recomendo que você não esqueça a -cacheopção, você não verá o nome do pacote se não adicioná-lo usando grepo comando (veja abaixo o resultado sem esta opção):

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

  Apache HTTP Server (mod_ssl development headers)
  WebSocket extension for Apache HTTP Server

EDITAR: Obrigado a@pymym23, você classificaria melhor seus resultados usando a descrição, por exemplo

apt-cache search apache2 | grep "Apache HTTP Server"

Resultado:

apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server

Além disso, você deve usar a -iopção, ela não classificará o resultado se você não digitar uma letra maiúscula em vez de uma minúscula

Exemplo :

apt-cache search apache2 | grep "apache HTTP Server"

e você temnenhum resultado

apt-cache search apache2 | grep -i "apache HTTP Server"

e o resultado é:

apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server

Responder3

Acho que uma boa maneira de pesquisar isso é guia completa

sudo apt install apache<tab><tab>

 sudo apt install apache
apache2                  apache2-doc              apachedex
apache2-bin              apache2-ssl-dev          apacheds
apache2-data             apache2-suexec-custom    apachetop
apache2-dbg              apache2-suexec-pristine  
apache2-dev              apache2-utils  

se isso falhar, basta digitar o comando

~$ apache

Command 'apache' not found, did you mean:

  command 'apache2' from deb apache2-bin

Try: sudo apt install <deb name>

As distros modernas são muito boas em saber o que você quis dizer

Se isso falhar, geralmente volto para apt search/ apt list ou com mais frequência hoje em dia, pesquiso docker hub e instalo através do docker

Responder4

Concordo que a solução apt listé melhor na apresentação de resultados do que apt search, mas mais informações estão disponíveis em

  • apt list | grep <package_name>

e com o --installedparâmetro como:

  • apt list --installed | grep <package_name>

mostra o que está instalado para esse pacote.

Portanto sem o parâmetro ele retornao queeondeestá disponível sobre o pacote, então você sabe o que deseja instalar e com o parâmetro você pode confirmar se já instalou o pacote

informação relacionada