我正在安装网络模拟在 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
该命令从未被调用过),它会尝试以普通用户身份运行,然后它会说:sudo
apt-key
错误:此命令只能由 root 使用。
apt-key
因为,是的...尝试以普通/非特权用户身份运行确实是一个错误。