尝试安装存储库签名密钥时,wget 抛出“缺少 URL”

尝试安装存储库签名密钥时,wget 抛出“缺少 URL”

我正在安装网络模拟在 Ubuntu 上,运行此命令安装程序的签名密钥时:

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

我收到消息:

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

Try `wget --help' for more options.

为什么我会收到这个错误?

在此处输入图片描述

答案1

wget问题文本中的命令与屏幕截图中的命令不匹配。以下是屏幕截图中的命令:

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

这是示例文本中的命令;还请检查官方 INetSim 安装说明

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

注意到了细微的差别吗?失败的原因是缺少了-betweensudo wget -O和其后的 URL。尝试使用-,它应该可以正常工作。

为了让您了解发生了什么或没有发生什么,需要-O(--output-document标志来-告诉wget将该 URL 的内容流式传输到标准输出。如果您只是像这样运行命令:

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

要做wget的就是将该文件保存到系统本地名为 的文件中inetsim.org-archive-signing-key.asc。但是设置-O -并将管道 ( |) 连接到| apt-key add -命令基本上就是说,将该文件的内容流式传输到标准输入,然后将该输出连接到管道,apt-key add以便可以将关键内容添加到您的apt存储库列表中。

此外,您的屏幕截图显示了其他错误:

错误:此命令只能由 root 使用。

这与命令中缺少破折号直接相关;它也会导致其他一切失败。

如果命令的管道损坏,整个命令就会失败,并且永远不会到达提示您输入密码的地步sudo。但命令的其余部分仍然在解析。

因此,即使整个命令失败,它仍会尝试运行apt-key。由于单行命令的剩余部分基本上与之前调用的命令的其余部分分离(由于错误,sudo该命令从未被调用过),它会尝试以普通用户身份运行,然后它会说:sudoapt-key

错误:此命令只能由 root 使用。

apt-key因为,是的...尝试以普通/非特权用户身份运行确实是一个错误。

相关内容