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 apache
e obtenho muitos resultados.
Na verdade...
apt search apache | wc -l
e dividindo por 3 - parece que obtive cerca de 700 resultados.
Posso tentar restringir isso usando
apt search apache http
e então obtenho cerca de 200 resultados e então posso rolar bastante e eventualmente aparecerá.Também posso usar
apt search --names-only apache
e 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 search
nã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
Deapt
manual:
listaé um pouco semelhante ao
dpkg-query --list
fato 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-versions
as 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 apache2
pacote 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 grep
comando:
apt-cache search apache2 | grep apache2
e se você não gosta dovermelhocor do grep, basta adicionar a --color=none
opção:
apt-cache search apache2 | grep apache2 --color=none
PS: Recomendo que você não esqueça a -cache
opção, você não verá o nome do pacote se não adicioná-lo usando grep
o 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 -i
opçã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>
dá
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 --installed
parâ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