wget gibt eine 'fehlende URL' aus, wenn versucht wird, einen Repository-Signaturschlüssel zu installieren

4

Ich installiere INetSim unter Ubuntu und beim Ausführen dieses Befehls zum Installieren des Signaturschlüssels für das Programm:

sudo wget -O - http://www.inetsim.org/inetsim.org-archive-signing-key.asc | apt-key add -

Ich bekomme die Nachricht:

wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

Warum erhalte ich diesen Fehler?

Bildbeschreibung hier eingeben

BDillan
quelle

Antworten:

11

Der wgetBefehl in Ihrem Fragentext stimmt nicht mit dem Befehl in Ihrem Screenshot überein. Hier ist der Befehl in Ihrem Screenshot:

sudo wget -O http://www.inetsim.org/inetsim.org-archive-signing-key.asc | apt-key add -

Hier ist der Befehl in Ihrem Beispieltext; Überprüfen Sie auch den Befehl in der offiziellen INetSim-Installationsanleitung :

sudo wget -O - http://www.inetsim.org/inetsim.org-archive-signing-key.asc | apt-key add -

Beachten Sie den feinen Unterschied? Demjenigen, der fehlschlägt, fehlt das -Zwischenzeichen sudo wget -Ound die darauf folgende URL. Probieren Sie es mit -und es sollte gut funktionieren.

Damit Sie verstehen, was passiert ist oder nicht, wurde das -O( -Flag --output-documentbenötigt, -um anzuzeigen, dass wgetder Inhalt dieser URL an die Standardausgabe gesendet werden soll. Wenn Sie den Befehl nur folgendermaßen ausgeführt haben:

wget http://www.inetsim.org/inetsim.org-archive-signing-key.asc

Alles, wgetwas Sie tun würden, wäre, diese Datei lokal auf Ihrem System in einer Datei mit dem Namen zu speichern inetsim.org-archive-signing-key.asc. -O -Wenn Sie jedoch diese Pipe ( |) auf | apt-key add -den Befehl setzen und dann haben, heißt das im Grunde, dass Sie den Inhalt dieser Datei an standard put streamen und dann die Ausgabe an diese Pipe leiten, apt-key adddamit der Schlüsselinhalt Ihrer aptRepository-Liste hinzugefügt werden kann .

Außerdem zeigt Ihr Screenshot den zusätzlichen Fehler:

FEHLER: Dieser Befehl kann nur von root verwendet werden.

Das hängt direkt mit dem Fehlen des Strichs in Ihrem Befehl zusammen. es bringt auch alles andere zum scheitern.

Wenn die Pipe (s) des Befehls unterbrochen sind, schlägt der gesamte Befehl fehl und es wird niemals der Punkt erreicht, an dem Sie zur Eingabe des sudoKennworts aufgefordert werden . Der Rest des Befehls wird dennoch analysiert.

Selbst wenn der vollständige Befehl fehlschlägt, wird dennoch versucht, ihn auszuführen apt-key. Und da der verbleibende Teil des einzeiligen Befehls im Grunde genommen vom Rest des zuvor sudoaufgerufenen Befehls getrennt ist - der sudoaufgrund des Fehlers nie aufgerufen wurde -, wird versucht, apt-keyals normaler Benutzer ausgeführt zu werden. Anschließend heißt es:

FEHLER: Dieser Befehl kann nur von root verwendet werden.

Denn ja… Der Versuch, apt-keyals normaler / nicht privilegierter Benutzer zu arbeiten, ist in der Tat ein Fehler.

JakeGould
quelle
Danke, das schien es zu lösen. Und warum erhalte ich den Befehl 'ERROR - Dieser Befehl kann nur von root verwendet werden', wenn ich sudo verwende? Ist das beabsichtigt?
BDillan
Außerdem hat jemand den Beitrag mit dem hinzugefügten Gedankenstrich bearbeitet. Weird
BDillan
@BDillan Ich habe die Frage bearbeitet, um sie besser zu fokussieren und zu formatieren, habe sie aber nie -in den Text eingefügt . Sehen Sie sich Ihren ursprünglichen Beitrag an . es ist von Anfang an klar da. Auch 100% keine Ahnung, worum es bei dieser Meldung "ERROR - Dieser Befehl kann nur von root verwendet werden" geht. Es scheint, als wäre ein Setup-Problem aufgetreten, das mit Ihrem Setup idiosynkratisch ist. Das kann ich nicht reproduzieren.
JakeGould
Okay, ich entschuldige mich
BDillan
1
@BDillan Okay, ich habe es geschafft, den "FEHLER: Dieser Befehl kann nur von root verwendet werden" zu reproduzieren . Wenn die Befehls-Pipes unterbrochen sind, schlägt der gesamte Befehl fehl und Sie gelangen nicht an den Punkt, an dem Sie das sudo-Passwort eingeben. Also , wenn es scheitert es versucht zu laufen apt-key addes grundsätzlich vom Rest des abgelösten sudoBefehls, versucht als normalen Benutzer laufen zu lassen und dann sagt ... „ERROR:. Dieser Befehl kann nur von root verwendet werden“ , so kein Problem auf Ihrem System an diesen vorbei Fehler, die Sie mit diesem einen Befehl haben.
JakeGould