在Ubuntu 16.04安装mongodb时出现错误

12

我已经看过这些答案了,请不要在解决方案中再次链接它们:

在Ubuntu 16.04上安装MongoDBhttps://unix.stackexchange.com/questions/220467/mongodb-unmet-dependencies/220483无法在Ubuntu 16.10上安装mongodbhttps://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04

我已经添加了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:
linux-headers-4.4.0-93-generic : Depends: linux-headers-4.4.0-93 but it is not going to be installed
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
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

在运行apt-get -f install命令时,我遇到了以下错误:

Unpacking linux-headers-4.4.0-93 (4.4.0-93.116) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers-4.4.0-93_4.4.0-93.116_all.deb (--unpack):
unable to create '/usr/src/linux-headers-4.4.0-93/arch/xtensa/include/asm/pgtable.h.dpkg-new' (while processing './usr/src/linux-headers-4.4.0-93/arch/xtensa/include/asm/pgtable.h'): No space left on device
No apport report written because the error message indicates a disk full error
                                                                          dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/linux-headers-4.4.0-93_4.4.0-93.116_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

当我尝试重新安装时,同样的事情继续发生。

有人能解释一下这个错误是什么以及如何安装吗?

更新:

运行df -h命令显示:

Filesystem      Size  Used Avail Use% Mounted on
udev            487M     0  487M   0% /dev
tmpfs           100M   12M   88M  12% /run
/dev/xvda1      7.8G  5.3G  2.1G  72% /
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           496M     0  496M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000

运行df -i命令会得到以下结果:

Filesystem     Inodes  IUsed  IFree IUse% Mounted on
udev           124466    360 124106    1% /dev
tmpfs          126788    480 126308    1% /run
/dev/xvda1     524288 520744   3544  100% /
tmpfs          126788      1 126787    1% /dev/shm
tmpfs          126788      6 126782    1% /run/lock
tmpfs          126788     16 126772    1% /sys/fs/cgroup
tmpfs          126794      4 126790    1% /run/user/1000

有进展吗?@mrid - Shirish Bajpai
你最终找到解决方案了吗? - Gorgon_Union
@Gorgon_Union 我重新安装了几次,它就开始工作了。很奇怪。 - mrid
11个回答

16

安装了 libcurl3 后才能正常工作。

sudo apt install libcurl3


11
我之前也遇到过类似的问题,通过以下步骤解决了这个问题: 前往目录 /etc/apt/sources.list.d/ 并检查是否有其他 mongodb-org-*.list 文件存在,因为这会导致冲突。
然后再次尝试安装,如果问题仍然存在,则运行下面的命令 sudo apt purge mongod* sudo apt purge mongodb* sudo apt purge mongodb-org* 以删除任何不一致的部分,然后前往https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/并按照该流程进行操作。
如果您使用的是 Ubuntu 派生版本,如 Linux Mint、Ubuntu GNOME 等,请在维基百科上确定您的 ubuntu 派生版本上运行的 Ubuntu 版本,然后再粘贴所需的命令。就像我这种情况,我使用的是 Linux Mint 17 -> Ubuntu 14.04,而我正在使用 Ubuntu 16.04 进行安装,这导致了冲突。
希望这可以解决这个问题。

清理缓存有帮助! - Chong Lip Phang

2
 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

sudo apt-get update
sudo apt-get install -y mongodb-org
sudo service mongod start
mongo

2
  • 下载 MongoDB 社区服务器 (.dbz) 版本

  • 解压并将其移动到主目录

  • 通过运行以下命令编辑 ~/.profile:

    • gedit ~/.profile
  • 然后添加此内容:

    • echo export PATH=mongodb-linux-x86_64-ubuntu1804-4.0.4/bin:$PATH
  • 保存后通过运行以下命令更新系统变量:

    • source ~/.profile
  • 之后,通过运行以下命令启动服务器:

    • mongod

2

运行以下命令:

sudo apt-get -f install

然后尝试运行 sudo apt-get install -y mongodb-org


2
你已经更新了吗?
sudo apt-get update && sudo apt-get upgrade

如果更新无效,请尝试检查损坏的依赖项:
sudo apt-get check

检查命令是一种诊断工具,它用于更新软件包缓存并检查是否存在损坏的依赖关系。

我还会尝试两件事。首先,

sudo dpkg --configure -a
sudo apt-get -f install

如果这并没有帮助,尝试解除dpkg的阻止。
sudo rm -rf /var/lib/apt/lists/partial/*
sudo apt-get -f install

我希望这能有所帮助。

您可能需要运行“apt-get -f install”来纠正这些问题。 以下软件包存在未满足的依赖关系: linux-headers-4.4.0-93-generic:依赖于linux-headers-4.4.0-93,但它没有被安装。 - mrid
抱歉,我不得不问一个显而易见的问题 - 您的设备上是否有足够的空间?因为它显示:设备上没有剩余空间。 由于错误消息指示磁盘已满,未编写任何apport报告。 - Ognjen Vukovic
升级仍然出现相同的错误。请检查更新后的问题。我已经添加了df -h命令的结果。 - mrid
我已经更新了评论,加入了另外两个尝试的方法。 - Ognjen Vukovic

1
我遇到了同样的问题。我尝试使用brew进行安装,但对我来说没有用。我按照官方网站上提到的所有步骤操作,但还是不行。

Error in installing mongodb

我为MongoDB创建了一个特定的sources.list文件,并将其添加到sources.list目录中,该目录始终由apt使用。请确保使用与sources.list相同的格式。
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

接下来,我们需要更新源列表以便更好地使用apt。因此,我使用了update命令。

sudo apt-get update

最终,我执行了安装命令,它成功了。

Solution of the error


1

我尝试了很多答案,但最终发现系统版本与Mongo仓库所需版本不匹配。在MongoDB官方网站上,有一个选项可以让您选择正确的仓库链接。 因此,请首先检查您的系统版本:

lsb_release -dc

如果您的系统版本是18.04,请尝试:
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

如果您的系统版本是16.04,请尝试:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

请翻译以下与编程有关的内容,从英文到中文。仅返回已翻译的文本:黄色文本框用于错误等。使用 ... 指出要执行的代码。现在我们修改了第一个要执行的脚本代码,它很让我们感到困惑。 (来自评论)。 - ZF007

0
使用此命令删除那些文件。
sudo dpkg -i --force-overwrite /var/cache/apt/archives/mongodb-org-mongos_4.4.4_amd64.deb; sudo dpkg -i --force-overwrite /var/cache/apt/archives/mongodb-org-server_4.4.4_amd64.deb; sudo dpkg -i --force-overwrite /var/cache/apt/archives/mongodb-org-tools;

然后运行

sudo apt-get install -y mongodb-org;

sudo systemctl start mongod;

0
你有检查服务器上的inode吗?df -h可能仍然显示剩余空间,但是你可能已经用完了inode。请尝试运行df -i并查看服务器上是否还有任何inode可用。

谢谢,我已经更新了我的问题并添加了df -i的输出。您能否请检查一下并让我知道是否有问题 :) - mrid

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