我刚刚安装了 Ubuntu 12.04 并添加了一些 repo,当我这样做时apt-get update
,我丢失了 gpg 密钥。
以下命令似乎对我不起作用:
apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
不幸的是,MongoDB 的官方 Ubuntu 包仍然停留在 2.6 上,这在这一点上是古老的(这个错误并没有因为生动、狡猾或狡猾而被发现)。
MongoDB 尚未发布适用于 16.04 (Xenial) 的软件包,那么如何使用 14.04 (Trusty) 软件包在 16.04 上安装 MongoDB 3.2+?
我按照指示通过 apt-get 安装 MongoDB。验证过程中出现问题,但在 StackExchange 上进行跟踪表明这是签名过程中的一个已知问题,因此我在apt-get install mongodb
没有-y
标志的情况下重新运行。然后安装成功了,或者看起来是这样。但是当我尝试启动服务时,发生了这种情况:
$ sudo service mongod start
[sudo] password for mark:
Failed to start mongod.service: Unit mongod.service not found.
$ sudo service mongod status
? mongod.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)
果然,该文件/etc/init.d/mongod
不存在。安装说明明确说明提供了此文件:
mongodb-org 包包含各种初始化脚本,包括初始化脚本 /etc/init.d/mongod。
该文件确实存在于 GitHub 上的源代码中。所以我可以继续。但我想知道为什么成功安装的软件包中缺少关键配置文件。(称我为完全主义者。)
我的 Ubuntu 版本是 16.10,它不受官方支持。我不认为这可能是原因。真的要怪发行版吗?还是安装未签名的软件包是错误的?还是包裹本身坏了?还是这里发生了其他事情?