使用以下命令在ubuntu 16.04上安装MongoDB 3.2时,我也遇到了此问题。提供以下解决方案作为与MongoDB v3.2安装相关的问题
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
运行上面的更新命令后,我发现以下警告
W: GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures were invalid: KEYEXPIRED 1507497109
W: The repository 'http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
关于进一步调查,请使用以下命令列出所有密钥
sudo apt-key list
它表明当前密钥已在2017-10-08过期
pub 4096R/EA312927 2015-10-09 [expired: 2017-10-08]
uid MongoDB 3.2 Release Signing Key <packaging@mongodb.com>
由于MongoDB当前稳定版本(3.4.9),这也很有意义。
要首先解决此问题,我们进行一次小清理(可选)
我们删除添加的旧密钥
sudo apt-key list //列出所有键
sudo apt-key del EA312927 //查找要删除的密钥的uid
apt键列表| grep Mongodb //验证是否已删除
现在我们删除/etc/apt/sources.list.d中添加的MongoDB存储库
须藤rm /etc/apt/sources.list.d/mongodb*.list
现在,我们使用以下命令安装最新稳定版的MongoDB(3.4.9)
导入Ubuntu软件包管理器使用的公钥
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
为mongoDB创建文件列表以获取当前存储库
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-3.4.list
安装MongoDB
sudo apt-get update
sudo apt-get install mongodb-org