Entiendo que esto suena como una pregunta ridícula, pero esto es lo que intento hacer:Instale el servidor http apache.
Entonces corro apt search apache
y obtengo un montón de resultados.
En realidad...
apt search apache | wc -l
y dividiéndolo por 3, parece que obtengo unos 700 resultados.
Puedo intentar reducir esto usando
apt search apache http
y luego obtengo alrededor de 200 resultados y luego puedo desplazarme mucho y eventualmente aparecerá.También puedo usar
apt search --names-only apache
y al menos excluir todas aquellas cosas que solo mencionan apache en la descripción. Eso lo reduce a 110 resultados.
Todo esto parece bastante complicado y tedioso dado que el paquete que estoy buscando se llama "apache2". ¿Existe alguna forma de obtener una clasificación de resultados que mejor se ajuste? ¿O alguna otra herramienta que debería usar?
Respuesta1
Parece saber cómo debería llamarse el paquete, o al menos cuál debería ser una parte de su nombre.
apt search
no parece la mejor herramienta para esta tarea, use apt list
en su lugar:
$ 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:
listaes algo similar a
dpkg-query --list
que puede mostrar una lista de paquetes que satisfacen ciertos criterios. Es compatibleglob
(7)patrones para hacer coincidir nombres de paquetes, así como opciones para enumerar las versiones instaladas (--installed
), actualizables (--upgradeable
) o todas las disponibles (--all-versions
).
El asterisco escapado ( \*
) significa que cualquier carácter puede seguir al nombre. Si no encuentra nada, considere agregar el asterisco de escape al comienzo de la cadena de búsqueda.
Estoy bastante seguro de que puedes elegir el correcto de esta lista. Obviamente, el primero es el servidor Apache real. Al seleccionar el apache2
paquete también se instalarán sus dependencias automáticamente.
$ 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
Respuesta2
Podrías usar el grep
comando:
apt-cache search apache2 | grep apache2
y si no te gusta elrojocolor de grep, solo agrega la --color=none
opción:
apt-cache search apache2 | grep apache2 --color=none
PD: te recomiendo que no olvides la -cache
opción, no verás el nombre del paquete si no lo agregas usando grep
el comando (ver a continuación el resultado sin esta opción):
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: Gracias a@pymym23, ordenaría mejor sus resultados utilizando la descripción, por ejemplo
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
Además, debes usar la -i
opción, no ordenará el resultado si no escribes una letra mayúscula en lugar de una minúscula.
Ejemplo :
apt-cache search apache2 | grep "apache HTTP Server"
y tienessin resultados
apt-cache search apache2 | grep -i "apache HTTP Server"
y el resultado es:
apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server
Respuesta3
Creo que una buena forma de buscar esto es la pestaña completa.
sudo apt install apache<tab><tab>
da
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
si eso falla, simplemente escriba el comando
~$ apache
Command 'apache' not found, did you mean:
command 'apache2' from deb apache2-bin
Try: sudo apt install <deb name>
Las distribuciones modernas son bastante buenas para saber a qué te refieres.
Si eso falla, normalmente recurro a apt search
/ apt list
o con más frecuencia en estos días, busco Docker Hub e instalo a través de Docker.
Respuesta4
Estoy de acuerdo con la solución acerca de apt list
que la presentación de resultados es mejor que apt search
, pero hay más información disponible a través de
apt list | grep <package_name>
y con el --installed
parámetro como:
apt list --installed | grep <package_name>
muestra lo que está instalado para ese paquete.
Por lo tanto sin el parámetro regresaquéydóndeestá disponible sobre el paquete, por lo que sabe lo que desea instalar y con el parámetro puede confirmar si ya instaló el paquete.