尝试安装存储库签名密钥时无法写入“-”(断管)

Sad*_*per 6 wget ubuntu

我正在尝试在 Ubunutu 14.04 桌面上安装INetSim。我使用预编译的 Debian 软件包编辑了源列表。然后当我尝试使用安装签名密钥wget时,我在运行命令时遇到了这个问题:

sudo wget -O - 'http://www.inetsim.org/inetsim.org-archive-signing-key.asc' | apt-key add -
Run Code Online (Sandbox Code Playgroud)

我在上面遇到了管道破裂的问题。

这是什么原因?我是否必须在以下之后添加一些内容:

apt-key add
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

小智 8

你必须跑

apt-key list
Run Code Online (Sandbox Code Playgroud)

如果出现软件包未安装的错误gnupg,则必须安装它

sudo apt install gnupg && sudo apt install gnupg1
Run Code Online (Sandbox Code Playgroud)

或者

sudo apt install gnupg && sudo apt install gnupg2
Run Code Online (Sandbox Code Playgroud)

这对我有用。


Gia*_*968 7

这是什么原因?我是否必须在以下之后添加一些内容:

apt-key add
Run Code Online (Sandbox Code Playgroud)

是的。确切地。查看官方 INetSim 安装说明,并在此处的文本示例中查看您的命令:

sudo wget -O - 'http://www.inetsim.org/inetsim.org-archive-signing-key.asc' | apt-key add -
Run Code Online (Sandbox Code Playgroud)

请注意-apt-key add. 现在看看你的截图和你正在使用的命令;文字版如下:

sudo wget -O - 'http://www.inetsim.org/inetsim.org-archive-signing-key.asc' | apt-key add
Run Code Online (Sandbox Code Playgroud)

你不包括-之后apt-key add。所以输出sudo wget -O -应该通过管道传输到apt-key add -. 所以是的,你肯定有一个破损的管道正在发生——或者没有发生——就在那里。


小智 5

您可以轻松添加sudobefore apt-key,就像这样:

sudo wget -O - 'http://www.inetsim.org/inetsim.org-archive-signing-key.asc' | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)


小智 5

我创建的 docker 镜像也遇到了同样的问题。我使用的是一个只安装了最少软件包的超薄基础镜像。

为了调查这个问题,我首先检索了密钥文件。在此之后,我尝试了失败的导入命令。但是这次我收到了一个不错的错误消息,它指出我需要安装 gnupg、gnupg2 和 gnupg1 包。在我安装这些包后,导入工作成功。

所以我建议任何面临这个问题的人先找回密钥

wget http://[server]/file.key
Run Code Online (Sandbox Code Playgroud)

然后用

apt-key add file.key
Run Code Online (Sandbox Code Playgroud)

如果这至少仍然失败,您将看到失败的原因。