安装PostgreSQL 9.4:"gpg: no valid OpenPGP data found"

7
我正在尝试在一台全新的Debian Jessie机器上安装PostgreSQL 9.4。
我遵循这些说明:https://wiki.postgresql.org/wiki/Apt#Quickstart 当我到达这一点时:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

我收到了这个错误信息:
gpg: no valid OpenPGP data found.

我做错了什么?


将该命令拆分并验证您获取的是实际密钥,而不是某些连接错误。 - Jakub Kania
1
顺便提一下:Debian Jessie 已经安装了 PostgreSQL 9.4,你真的需要自己构建吗?Testing/unstable 通常会安装最新版本,这可能比自己构建更好(包括更新)。 - Jens Erat
@JensErat 谢谢。我最终只使用了 apt 来安装它,简单多了! - Richard
是的,但在Jessie中您有9.4(和宏伟的JSONB类型,因此您可以apt-get remove mongodb!),但仍然缺少9.5(它的UPSERT功能更加受欢迎!) - comte
2个回答

2
这些指令没问题,你可能遇到了连接问题(或者得到了与预期不同的内容)。请按照以下步骤操作:
  • 运行 wget -o - https://www.postgresql.org/media/keys/ACCC4CF8.asc(不带 --quiet 并且不使用管道传输给 GnuPG)来检查实际发生了什么。是否出现了 wget 指示的任何连接问题?
  • 您还可以从浏览器下载文件,只需使用复制粘贴将文本内容存储到文本文件中,并使用 apt-key add [path-to-file] 导入它(或者,如果有人想要导入到默认的 GnuPG 密钥环,则使用 gpg --import < [path-to-file])。
最可能的情况是 wget 找不到 PostgreSQL 网站引用的根证书,您在某个代理后面,该代理未配置为 支持 wget 或者网关更改了网站;至少返回的结果不是 GnuPG 期望的密钥数据格式。

这是一个很好的答案。在没有使用--quiet和没有管道到GnuPG的情况下运行wget将显示有关问题的更多细节,并且wget通常会建议解决方案(例如:--no-check-certificate)。 - Jessedc

2
在我的情况下,问题是由于postgresql的https证书不正确引起的。 只需在wget命令中添加--no-check-certificate即可。

1
如果禁用wget的证书验证,中间人攻击者可能不仅会向您发送经过篡改的PostgreSQL包(以及其他系统包!),而且还会提供一个看似有效的证书。如果从HTTPS获取是您唯一的信任锚点,请至少不要在不理解为什么失败的情况下禁用证书检查。 - Jens Erat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接