¿Cómo busco un paquete?

¿Cómo busco un paquete?

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 apachey obtengo un montón de resultados.

En realidad... apt search apache | wc -ly dividiéndolo por 3, parece que obtengo unos 700 resultados.

  1. Puedo intentar reducir esto usando apt search apache httpy luego obtengo alrededor de 200 resultados y luego puedo desplazarme mucho y eventualmente aparecerá.

  2. También puedo usar apt search --names-only apachey 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 searchno parece la mejor herramienta para esta tarea, use apt listen 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

Deaptmanual:

listaes algo similar a dpkg-query --listque 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 apache2paquete 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 grepcomando:

apt-cache search apache2 | grep apache2

y si no te gusta elrojocolor de grep, solo agrega la --color=noneopción:

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

PD: te recomiendo que no olvides la -cacheopción, no verás el nombre del paquete si no lo agregas usando grepel 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 -iopció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 listque 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 --installedpará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.

información relacionada