![]() |
体贴的弓箭 · wordpress路径问题 导致 ...· 1 年前 · |
![]() |
细心的荒野 · android 网络avi文件 ...· 1 年前 · |
![]() |
俊秀的排球 · 进入“安全中心-病ૈ - ...· 1 年前 · |
![]() |
乖乖的弓箭 · 在一个线程内绘图并更新它(python)· 2 年前 · |
我正在Ubuntu14.04机器上安装MongoDB,使用的说明是: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
所以我跑了:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
然后:
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
其次是:
sudo apt-get update
然后在更新结束时收到以下警告:
W: GPG错误: http://repo.mongodb.org trusty/mongoDB.org/ 3.2发行版:以下签名无效: BADSIG D68FA50FEA312927 MongoDB 3.2发行版签名键
如果我忽略了警告并试图运行:
sudo apt-get install -y mongodb-org
我得到:
警告:以下软件包无法通过身份验证! mongodb-org-shell mongodb-org-server mongodb-org-mongos mongodb-org-tools mongodb-org E:存在问题,-y是在没有强制的情况下使用的
对如何解决有什么想法吗?谢谢!
我也遇到了同样的问题,并通过使用tarball方法安装mongodb来解决它。有关详细信息,请参阅下面的链接。
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-linux/
添加以下详细信息
看起来3.2.1版本已经在2016年1月11日发布了,从现在起,软件包的签名就很糟糕了。包裹的签名前一天很好。
您可以添加-force-yes选项,或者等待mongodb团队看到并修复问题的几个小时。
听起来您需要重做MongoDB的安装步骤。首先,删除MongoDB的任何现有存储库文件。如下所示:
$ sudo rm /etc/apt/sources.list.d/mongodb*.list
接下来,添加密钥(没有键,存储库将不会加载):
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
现在,创建一个新的MongoDB存储库列表文件:
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
添加存储库详细信息后,我们需要更新包列表:
$ sudo apt-get update
现在安装MongoDB:
sudo apt install mongodb-org
在我的ubuntu16.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
运行上面的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)。
为了首先解决这个问题,我们做了一个小的清理(可选)
导入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
我也有同样的问题,所以我做了:
root@skarabi:~# apt remove mongodb-org
然后:
root@skarabi:~# sudo rm /etc/apt/sources.list.d/mongodb*.list
之后:
root@skarabi:~# apt update
您不需要重新安装mongo包,只需按以下方式更改键:
列出确认已过期的密钥:
apt-key list | grep "expired:"
更换钥匙:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xd68fa50fea312927
编号0xd68fa50Pary312927是当前的有效密钥id (过期时间为2019-10-09),因为您可以检查 这里 。
在一个命令中更新Ubuntu密钥服务器中的所有过期密钥:
sudo apt-key list | \
grep "expired: " | \
sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | \
xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
命令解释:
sudo apt-key list
-列出系统中安装的所有密钥;
grep "expired: "
-只保留带过期密钥的行;
sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp'
-提取密钥;
xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
-通过找到过期的密钥从Ubuntu服务器更新密钥。
实际上,以下几点对于解决这个问题是非常重要的
$ sudo rm /etc/apt/sources.list.d/mongodb*.list
在Ubuntu16.04上安装MongoDB 4.0时,我也遇到了这个问题。所以我就这么做了。
sudo rm /etc/apt/sources.list.d/mongodb*.list
-删除MongoDB的任何现有文件
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4
-添加密钥
sudo bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list'
-创建一个新的MongoDB存储库列表文件
现在,通过更新存储库完成安装,然后安装MongoDB,启用
mongod
服务并启动它,最后,检查您的MongoDB版本:
sudo apt update
sudo apt install mongodb-org
systemctl enable mongod.service
systemctl start mongod.service
mongo --version
使用 dlopatin的回答 ,我为Ubuntu18.04提出了这个问题,因为该代码不再工作了:
sudo apt-key list | \
![]() |
乖乖的弓箭 · 在一个线程内绘图并更新它(python) 2 年前 |