Ubuntu 20.04安装MongoDB时依赖问题及权限报错求助
嘿,看你在Ubuntu 20.04安装MongoDB的时候碰到了两个典型问题:依赖未解决和权限不足,别担心,咱们一步步来搞定它。
先还原一下你遇到的第一个报错场景:
This message show in terminal....
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
mongodb-org-database : Depends: mongodb-org-server but it is not going to be installed
Depends: mongodb-org-mongos but it is not going to be installed
mongodb-org-tools : Depends: mongodb-database-tools but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
当你尝试按提示运行修复命令时,又碰到了权限报错:
~$ apt --fix-broken install E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
第一步:解决权限问题
这个报错其实很直白——你没以管理员权限执行命令。Ubuntu里修改系统软件包的操作必须要root权限,所以只要在命令前加上sudo就行:
sudo apt --fix-broken install
输入你的用户密码(输入时终端不会显示字符,正常敲就行),回车后系统会自动尝试修复损坏的依赖链。
第二步:重新安装MongoDB(修复后)
等依赖修复完成,你可以重新尝试安装MongoDB。如果是通过官方源配置的安装,直接执行:
sudo apt install mongodb-org
这时候所有需要的依赖包应该都会被正常安装了。
额外情况:如果锁文件问题还没解决
有时候如果之前的apt进程意外退出,可能会残留锁文件导致无法获取锁。这种情况下你可以先检查有没有apt相关进程在运行:
ps aux | grep apt
如果查到相关进程,先杀掉它(把下面的[PID]替换成你查到的进程ID):
sudo kill -9 [PID]
然后手动删除残留的锁文件:
sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock
之后再运行sudo apt --fix-broken install应该就能正常执行了。
备注:内容来源于stack exchange,提问作者Azraf Sami

