Kein Befehl 'bla' gefunden, meintest du:?

7

Wenn also kein Befehl gefunden wird, auf welche Weise wird die Liste "Meinten Sie:" ausgefüllt? Welches Programm findet diese alternativen Befehle? Was bedeutet: "(Haupt), (Universum) ..."? Kann ich ändern, welches Programm diese findet?


quelle
1
Fragen Sie sich, welche Programme diese Funktionalität bieten oder welche in Ihrem Fall? In letzterem Fall haben Sie zu wenig Informationen angegeben. Welche Shell verwenden Sie für den Start?
Techraf
Ich benutze Bash, aber ich meine wirklich nur im allgemeinsten Fall. Welche Programme bieten dies und gibt es eine ziemlich konsistente Möglichkeit, das Programm in den meisten Shells zu bestimmen?
Es hängt auch stark davon ab, welche Version / Distribution von Unix / Linux Sie verwenden, wie die Funktion implementiert wird.
Randall

Antworten:

2

Wenn Sie sich den Inhalt ansehen /etc/apt/sources.list, hat er das Format

#Archive type  Repository URL                   Distribution Component
 deb           http://archive.ubuntu.com/ubuntu precise      main

Archivtyp

Das erste Wort in jeder Zeile, deb oder deb-src, gibt den Archivtyp an. Deb gibt an, dass das Archiv Binärpakete (deb) usw. enthält.

Repository-URL

Der nächste Eintrag in der Zeile ist eine URL zu dem Repository, von dem Sie die Pakete herunterladen möchten.

Verteilung

Die 'Distribution' kann entweder der Name / Alias ​​des Release-Codes (wheezy, jessie, align, sid) oder die Release-Klasse (oldstable, stabil, testend, instabil) sein.

Was bedeutet: "(Haupt), (Universum) ..."?

Komponente

main besteht aus DFSG-kompatiblen Paketen, Contrib-Pakete enthalten DFSG-kompatible Software, haben jedoch Abhängigkeiten, die nicht in main enthalten sind. Non-free enthält Software, die nicht der DFSG entspricht, und so weiter. Ein Tipp - Überprüfen Sie eine der Repository-URLs. Sie sollte einen Ordner mit dem Namen der Komponente enthalten.

Die Paketmanager sagen apt, dass sie eine Datenbank haben werden, die eine Liste aller Pakete in den Repositorys enthält, und die klug genug ist, Ihnen Vorschläge zu machen.

Ihr Paketmanager ist möglicherweise auf eof dpkg (z. B. Debian, Ubuntu usw.), apt (z. B. Debian, Ubuntu usw.), jetzt veraltete Drehzahl (z. B. ältere Redhat-Versionen und neuere starten aus Kompatibilitätsgründen nicht mehr), yum (z Fedora, CentOS), dnf - dentrifiziertes Yum (z. B. neue Fedora-Veröffentlichungen) und so weiter. Eine vollständigere Liste finden Sie hier . Möglicherweise sehen Sie sogar mehrere Paketmanager in einer Distribution. In Ubuntu sehen Sie möglicherweise dpkg, das / etc / apt / sources / list speist.

Also, wenn Sie tippen

cleaq

Es kann sagen

cleaq: no command found. Did you mean clean.

Mit welchen Mitteln ist die Liste "Meinten Sie:" gefüllt?

Dies beinhaltet eine Musterübereinstimmung mit den Paketen in Ihrer Paketmanager-Datenbank.

Diese Datenbank wird aktualisiert, wenn Sie eine apt-get update

Ich bin mir nicht sicher

Kann ich ändern, welches Programm diese findet?

obwohl. Ich glaube, dies ist eine Funktion, die nicht geändert werden kann. Ich bin mir aber nicht so sicher

Referenz : Debian SourceList

sjsam
quelle
1
@vondirac: Ja Quellen.Liste ist in der /etc/apt. Siehe die Bearbeitung. Nun, im Allgemeinen können Sie sagen, dass Ihr Paketmanager diese Liste für Sie verwaltet und Ihr Paketmanager geeignet sein kann (im Fall von Debian, Ubuntu usw.), rpm (Redhat und seine Klone), yum (z. B. Fedora) , CentOS) und dnf (Neuerscheinungen von Fedora)
sjsam
Sie können diese Antwort unter Bezugnahme auf einige Ubuntu-Dokumente verbessern .
JdeBP
4

Denn bashsein Verhalten wird von der Shell-Funktion bestimmt command_not_found_handle(siehe man bash).

Um zu sehen, welches Verhalten von dieser Funktion definiert wird, können Sie Folgendes ausgeben:

declare -p -f command_not_found_handle

Sie können ändern, welches Programm verwendet wird, indem Sie die command_not_found_handleFunktion neu definieren.

In Debian-basierten Distributionen (einschließlich Ubuntu) wird das Paketcommand-not-found üblicherweise installiert und ist unter folgendem /usr/lib/command-not-found Link verfügbar :

Schlagen Sie die Installation von Paketen in interaktiven Bash-Sitzungen vor

Dieses Paket installiert den Handler für command_not_found, der nach Programmen sucht, die derzeit nicht installiert sind, aber in den Repositorys verfügbar sind.

Siehe auch:

Randall
quelle
0

Dies ist keine Standardfunktion von Linux-Shells. Es gibt mindestens zwei Möglichkeiten:

  • zsh unterhält eine eigene Vorschlagsliste
  • Projekt thefuckbietet eine andere
Techraf
quelle