我按照 MongoDB 官方网站上的说明进行操作(https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/),尝试安装 MongoDB 时出现此错误。如何修复此问题以及出了什么问题?请记住,我使用的是最新版 Ubuntu 16.04
sudo apt-get install -y mongodb-org
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
mongodb-org :
Depends: mongodb-org-shell but it is not going to be installed
Depends: mongodb-org-server but it is not going to be installed
Depends: mongodb-org-mongos but it is not going to be installed
Depends: mongodb-org-tools but it is not going to be installed
virtualbox-5.0 : Depends: libqt4-opengl (>= 4:4.7.2) but it is not going to be installed
Depends: libsdl1.2debian (>= 1.2.11) but it is not going to be installed
Recommends: libsdl-ttf2.0-0 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
编辑:标题。MongDB -> MongoDB。
答案1
TL;DR;
尝试运行此命令,
sudo apt-get install libcurl3 openssl
进而
sudo apt-get install mongodb-org
日志:
所以我遵循了 Mongo 4.0 上的官方说明这里运行后得到这个sudo apt-get install mongodb-org
The following packages have unmet dependencies:
mongodb-org : Depends: mongodb-org-server but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
然后我手动将 mongodb-org-server 添加到安装命令中:
sudo apt-get install mongodb-org mongo-db-server
但后来我得到了
mongodb-org-server : Depends: libcurl3 (>= 7.16.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
手动安装这些之后:
sudo apt-get install libcurl3 openssl
我让它与单一一起工作:
sudo apt-get install mongodb-org
命令。
答案2
在 Ubuntu 12.04、14.04、16.04 中安装 mongodb
导入包管理系统使用的公钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
为 MongoDB 创建一个列表文件。
在 Ubuntu 12.04(已弃用)中:
echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
在 Ubuntu 14.04 中:
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
在 Ubuntu 16.04 中:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
重新加载本地包数据库。
sudo apt-get update
它会发出警告
W: http://repo.mongodb.org/apt/ubuntu/dists/trusty/mongodb-org/3.0/Release.gpg: Signature by key 492EAFE8CD016A07919F1D2B9ECBEC467F0CEB10 uses weak digest algorithm (SHA1)
忽略它就行。
安装 MongoDB 包。
sudo apt-get install -y mongodb-org
安装后,你可以使用以下命令启动 MongoDB
sudo service mongod start
停止 MongoDB 使用
sudo service mongod stop
要重新启动 MongoDB,请使用
sudo service mongod restart
如果这不起作用,请检查此处以查看是否有任何步骤已更新:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
答案3
我尝试运行 t9toqwerty / muru 发布的安装说明。但仍然收到消息
the following packages have unmet dependencies:
对我来说,有效的方法是从 tarball 手动安装 MongoDB。原始链接为:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-linux/
1)下载二进制文件
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.9.tgz
2)提取文件
tar -zxvf mongodb-linux-x86_64-3.4.9.tgz
3)将档案复制到目标目录
mkdir -p mongodb
cp -R -n mongodb-linux-x86_64-3.4.9/ mongodb
4)将位置放在 PATH 变量中。
export PATH=<mongodb-install-directory>/bin:$PATH
(将<mongodb-install-directory
> 替换为提取的 MongoDB 档案的路径。对我来说,这是 /home/myusername/mongodb/mongodb-linux-x86_64-3.4.9)
接下来运行它:
1)创建数据目录
mkdir -p /data/db
2)设置权限
这是为了确保用户对该目录具有读写权限。在终端中找到该目录,然后输入
chmod 777 /data/db
3)运行它!
mongod
如果你没有在步骤 4 中设置 PATH 变量,请通过输入 bin 文件的路径来运行 mongo — 如下所示
<path to binary>/mongod
答案4
Xenial(Ubuntu 16.04);MongoDB v. 3.2.11
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list
apt-get -qq update (if you are using docker)
apt-get update
apt-get install mongodb-org
我刚刚做了,效果很好。
字体:https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04