Warum bekomme ich "Befehl 'deb' nicht gefunden"?

102

Ich bin auf mehrere Installationsanweisungen gestoßen, die den Befehl enthalten deb. Es scheint jedoch, dass dieser Befehl in meiner Installation nicht verfügbar ist.

Wo kann ich diesen Befehl bekommen? Gibt es eine Problemumgehung?

Kevin Burton
quelle
3
Bitte akzeptieren Sie eine Antwort auf Fragen, bei denen Sie eine gute Antwort haben, um zu zeigen, dass Sie eine Antwort mögen und es Ihnen am meisten geholfen hat. Sie können dies mit dem Häkchen links tun.
ζ--
2
Es ist mir peinlich, dass ich nicht merkte, dass die Anweisungen, die ich las, mir nichts zum Tippen in der Befehlszeile zeigten. Es zeigte mir eine Zeile zum Einfügen in eine Datei. Ich bin froh, dass du diese Frage gestellt hast!
Tyler Collier

Antworten:

95

'deb' ist kein Befehl. Es wird in einer /etc/apt/sources.listDatei verwendet, um ein Debian-Software-Repository anzugeben.

Aus Ubuntu Manpage - sources.list :

Die Quellenliste unterstützt eine beliebige Anzahl aktiver Quellen und verschiedene Quellmedien. In der Datei wird eine Quelle pro Zeile aufgeführt, wobei die am meisten bevorzugte Quelle zuerst aufgeführt wird. Das Format jeder Zeile lautet: Geben Sie uri args ein. Der erste Elementtyp bestimmt das Format für Argumente. URI (Universal Resource Identifier) ​​ist eine Obermenge der spezifischeren und bekannteren URL (Universal Resource Locator).

Der Deb-Typ beschreibt ein typisches zweistufiges Debian-Archiv, Distribution / Komponente. Das Format für einen sources.list-Eintrag unter Verwendung der Typen deb und deb-src lautet:

deb [ options ] uri distribution [component1] [component2] [...]

Der URI für den Deb-Typ muss die Basis der Debian-Distribution angeben, von der APT die benötigten Informationen erhält. Die Verteilung kann einen genauen Pfad angeben. In diesem Fall müssen die Komponenten weggelassen werden und die Verteilung muss mit einem Schrägstrich (/) enden. Dies ist nützlich, wenn nur ein bestimmter Teil des Archivs von Interesse ist, der durch den URI gekennzeichnet ist. Wenn die Verteilung keinen genauen Pfad angibt, muss mindestens eine Komponente vorhanden sein.

Also, wenn ich deb http://archive.ubuntu.com/ubuntu/ quantal main restrictedin sources.listihm sage, dass ich ein Debian-Archiv habe, das auf " http://archive.ubuntu.com/ubuntu/ " basiert , ist die Distribution "quantal" und die Komponenten sind "main" und "restricted".

Eric Carvalho
quelle
22
Und sources.listist /etc/apt/am 12.04.
Ahmed Fasih
4
Kann nützlich sein, wenn Sie sagen, dass "deb" -Zeilen Anweisungen sind, die zu Aptitude-Quellenlisten hinzugefügt wurden. Das würde die Verwirrung beseitigen, die dieses ganze Problem schafft.
Shahriyar Imanov
23

Wie die Antwort von @Eric Carvalho deb ist nicht Befehlszeile Wenn Sie deb haben, dann url wie folgt:

deb http://download.virtualbox.org/virtualbox/debian trusty contrib 

Bearbeiten

Wie beim Festschreiben von @muru müssen Sie eine neue Datei mit der Erweiterung .listin /etc/apt/source.list.d/Ordner erstellen :

Beispiel : Ich möchte Oracle virtualbox herunterladen und eine neue Datei erstellen:

sudo gedit /etc/apt/sources.list.d/oracle-virtualbox-trusty.list 

Kopieren Sie dann die deb-Zeile und fügen Sie sie in diese Datei ein

ahmed hamdy
quelle
1
1. Es ist apt, nicht opt(obwohl es eine gibt opt) und 2. Bearbeiten Sie niemals, /etc/apt/sources.listum eine Zeile hinzuzufügen, es sei denn, es ist ein Ubuntu-Spiegel / offizielles Repository. Erstellen Sie eine neue Datei /etc/apt/sources.list.dmit der Erweiterung .listin dieser Zeile.
muru
1
@muru " Bearbeiten Sie niemals /etc/apt/sources.list, um eine Zeile hinzuzufügen, es sei denn, es handelt sich um einen Ubuntu-Spiegel / ein offizielles Repository. " Warum? Sicher, das Erstellen von .listDateien /etc/apt/sources.list.dist das, was ich unter diesen Umständen mache und normalerweise empfehle. Ich sehe jedoch keinen Grund, darauf zu bestehen , dass manuell hinzugefügte Softwarequellen von Drittanbietern hinzugefügt werden /etc/apt/sources.list.d. Einige Conffiles werden, wenn möglich, am besten nicht vom Benutzer bearbeitet (z. B. " /etc/profile.dOver" /etc/profile, "Use /etc/sudoers.dOver" /etc/sudoers), sondern sources.listhäufig geändert. (Auch durch Ubiquity zu einem regionalen Spiegel angepasst.)
Eliah Kagan
@EliahKagan Wann haben Sie jemals gesehen, dass Ubiquity der sources.list ein Repository eines Drittanbieters (kein Mirror) hinzufügt? Oder überhaupt irgendein offizielles Tool? sources.list.d ist aus einem Grund vorhanden. Ich werde weiterhin darauf bestehen, dass es für Repositorys von Drittanbietern verwendet wird.
Muru
@muru Entschuldigung, ich war nicht klar. Ich erwähnte Ubiquity Verhalten darauf hinzuweisen, /etc/apt/sources.listnicht einer der ist conffiles , die man kann in Ruhe lassen , um so glatter Modernisierung zu erleichtern --as dass oft (vielleicht in der Regel) die Motivation hinter starke Vorschläge machen Dateien in bevorzugen , X.dum die Bearbeitung X. Ich schlage nicht vor, dass Ubiquity in irgendeiner Weise Repos von Drittanbietern ermöglicht. Sie haben jedoch nicht erklärt, was das Besondere an solchen Repos ist, damit es tatsächlich falsch ist (dh "Niemals bearbeiten ..."), sie einzufügen sources.list.
Eliah Kagan
@EliahKagan Da ist nichts "eigentlich Falsches" dabei, wenn das dein Problem mit der Aussage ist. "Never [do X]" bedeutet nicht immer, dass X falsch ist, es kann und bedeutet, dass X schlecht ist ("Never use GOTO."). Jetzt glücklich? Wiederholen: Ich werde weiterhin darauf bestehen, dass sources.list.d nur für Repositories von Drittanbietern und sources.list für Mirrors und offizielle Repos verwendet wird, es sei denn, Sie können mir einen eindeutigen Grund nennen, warum dies keine gute Idee ist um das zu tun.
muru
10

debist kein Unix-Befehl. Wenn Sie eine Zeile wie die folgende haben (Quelle für Docker):

deb https://apt.dockerproject.org/repo ubuntu-xenial main

Es ist eine Zeile, die in Ihrem Ubuntu verfügbar sein muss, sources.listdamit apt-getzukünftige Pakete von dieser neuen Quelle gefunden werden können.

Es ist jedoch keine gute Praxis, die /etc/apt/sources.listDatei direkt zu bearbeiten . Fügen Sie stattdessen die debZeile als Eintrag in eine neue .listDatei im /etc/apt/sources.list.d/Verzeichnis ein. Wir werden eine docker.listDatei wie diese erstellen :

echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list

Wenn Sie fertig sind, denken sudo apt-get updateSie daran, a auszuführen. Nun sollten Sie in der Lage sein, neue Pakete aus dieser Quelle leicht zu finden.

Rakib
quelle
8

Deb ist eigentlich kein Befehl (ich dachte es zuerst auch) - Angenommen, Sie versuchen, eine Deb herunterzuladen / zu installieren, tun Sie dies (zum Beispiel):

wget http://whatever.com/whatever.deb

dann dpkg -i whatever.deb

Führen Sie dann die folgenden Befehle aus:

sudo apt-get update
dylanh724
quelle
2
100% relevant und besser als die beste Antwort oben. Er versucht offensichtlich, eine .deb
dylanh724
2

Unter Ubuntu müssen Sie das nicht manuell bearbeiten source.list, um das Repository hinzuzufügen. Stattdessen können add-apt-repositorySie wie bei einem PPA verwenden.

Um beispielsweise das LLVM-Repository hinzuzufügen, können Sie Folgendes aufrufen:

sudo add-apt-repository 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty main'

Wie Sie sehen, müssen wir die debZeile als einzelnes Argument an den Befehl übergeben.

Benoit Blanchon
quelle
2

Dies ist nicht der CLI-Befehl.

Dies sind Informationen über ein Debian-Paket-Repository (das auch von Ubuntu verwendet wird).

Wenn Sie dieses Repository verwenden möchten:

  1. Öffnen Sie die Datei /etc/apt/sources.listmit Administratorrechten.

  2. Fügen Sie dieser Datei eine Zeile mit Informationen zum Repository hinzu, die mit beginnen deb ...

  3. Speicher die Datei.

  4. Führen Sie diesen Befehl aus:

    apt-get update

Jetzt können Sie dieses Repository verwenden.

simhumileco
quelle