Wie suche ich nach einem Paket?

Wie suche ich nach einem Paket?

Ich verstehe, dass dies wie eine lächerliche Frage klingt, aber ich versuche Folgendes:Installieren Sie den Apache-HTTP-Server.

Also laufe ich los apt search apacheund erziele jede Menge Ergebnisse.

Tatsächlich ... apt search apache | wc -lund wenn ich durch 3 teile, erhalte ich anscheinend etwa 700 Ergebnisse.

  1. Ich kann versuchen, es einzugrenzen apt search apache http, und dann bekomme ich ungefähr 200 Ergebnisse. Dann kann ich viel scrollen, und irgendwann wird es auftauchen.

  2. Ich kann auch alle Dinge verwenden apt search --names-only apacheund zumindest ausschließen, die in der Beschreibung nur Apache erwähnen. Das reduziert die Ergebnisse auf 110.

All dies scheint ziemlich kompliziert und mühsam, da das Paket, nach dem ich suche, „apache2“ heißt. Gibt es eine Möglichkeit, die Ergebnisse so zu sortieren, dass sie am besten passen? Oder ein anderes Tool, das ich verwenden sollte?

Antwort1

Sie scheinen zu wissen, wie das Paket heißen sollte, oder zumindest, was ein Teil seines Namens sein sollte. apt searchscheint nicht das beste Werkzeug für diese Aufgabe zu sein, verwenden Sie apt liststattdessen:

$ 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

AusaptHandbuch:

Listeist insofern ähnlich, dpkg-query --listals es eine Liste von Paketen anzeigen kann, die bestimmte Kriterien erfüllen. Es unterstütztglob(7)Muster zum Abgleichen von Paketnamen sowie Optionen zum Auflisten installierter ( --installed), aktualisierbarer ( --upgradeable) oder aller verfügbaren ( --all-versions) Versionen.

Das maskierte Sternchen ( \*) bedeutet, dass dem Namen beliebige Zeichen folgen können. Wenn Sie nichts finden, können Sie das maskierte Sternchen am Anfang der Suchzeichenfolge hinzufügen.

Ich bin ziemlich sicher, dass Sie aus dieser Liste das Richtige auswählen können. Das erste ist natürlich der eigentliche Apache-Server. Wenn Sie das apache2Paket auswählen, werden auch dessen Abhängigkeiten automatisch installiert.

$ 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

Antwort2

Sie können den folgenden grepBefehl verwenden:

apt-cache search apache2 | grep apache2

und wenn Sie nicht mögen dieRotFarbe von grep, fügen Sie einfach die --color=noneOption hinzu:

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

PS: Ich empfehle Ihnen, die -cacheOption nicht zu vergessen, da der Paketname nicht angezeigt wird, wenn Sie ihn nicht per grepBefehl hinzufügen (siehe unten das Ergebnis ohne diese Option):

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

EDIT: Danke an@pymym23, Sie können Ihre Ergebnisse besser sortieren, indem Sie beispielsweise die Beschreibung verwenden.

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

Ergebnis :

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

Außerdem müssen Sie die -iOption verwenden, da das Ergebnis nicht sortiert wird, wenn Sie keinen Großbuchstaben statt eines Kleinbuchstabens eingeben

Beispiel :

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

und du hastkein Ergebnis

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

und das Ergebnis ist:

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

Antwort3

Ich finde, eine gute Möglichkeit zum Suchen hierfür ist die Tab-Vervollständigung

sudo apt install apache<tab><tab>

gibt

 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  

Wenn das nicht klappt, geben Sie einfach den Befehl ein

~$ apache

Command 'apache' not found, did you mean:

  command 'apache2' from deb apache2-bin

Try: sudo apt install <deb name>

Moderne Distributionen wissen ziemlich gut, was Sie gemeint haben

apt searchWenn das fehlschlägt, greife ich normalerweise auf / zurück apt list oder suche heutzutage häufiger nach Docker Hub und installiere über Docker

Antwort4

Ich bin mit der Lösung einverstanden, die hinsichtlich apt listder Ergebnispräsentation besser ist als apt search, aber weitere Informationen sind verfügbar über

  • apt list | grep <package_name>

und mit --installedParametern wie:

  • apt list --installed | grep <package_name>

zeigt, was für dieses Paket installiert ist.

Daher gibt es ohne den Parameter zurückWasUndWoist über das Paket verfügbar, so dass Sie wissen, was Sie installieren möchten, und mit dem Parameter können Sie bestätigen, ob Sie das Paket bereits installiert haben

verwandte Informationen