- 错误信息
最近在用apt去安装东西的时候,总是会遇到下面这样的问题:
sudo apt install ./zoom_amd64.deb #比方说我在安装zoom,下面是报的错误
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
您也许需要运行“apt --fix-broken install”来修正上面的错误。
下列软件包有未满足的依赖关系:
libatomic1 : 依赖: gcc-8-base (= 8.3.0-6ubuntu1~18.04.1) 但是 8.4.0-1ubuntu1~18.04 已经安装
libc6-dbg : 依赖: libc6 (= 2.27-3ubuntu1.2) 但是 2.27-3ubuntu1 已经安装
libc6-dev : 依赖: libc6 (= 2.27-3ubuntu1.2) 但是 2.27-3ubuntu1 已经安装
libc6-i386 : 依赖: libc6 (= 2.27-3ubuntu1.2) 但是 2.27-3ubuntu1 已经安装
libcc1-0 : 依赖: gcc-8-base (= 8.3.0-6ubuntu1~18.04.1) 但是 8.4.0-1ubuntu1~18.04 已经安装
libgcc1:i386 : 依赖: libc6:i386 (>= 2.2.4) 但是它还没有被安装
libgomp1 : 依赖: gcc-8-base (= 8.3.0-6ubuntu1~18.04.1) 但是 8.4.0-1ubuntu1~18.04 已经安装
liblsan0 : 依赖: gcc-8-base (= 8.3.0-6ubuntu1~18.04.1) 但是 8.4.0-1ubuntu1~18.04 已经安装
libmpx2 : 依赖: gcc-8-base (= 8.3.0-6ubuntu1~18.04.1) 但是 8.4.0-1ubuntu1~18.04 已经安装
libobjc4 : 依赖: gcc-8-base (= 8.3.0-6ubuntu1~18.04.1) 但是 8.4.0-1ubuntu1~18.04 已经安装
libstdc++6 : 依赖: gcc-8-base (= 8.3.0-6ubuntu1~18.04.1) 但是 8.4.0-1ubuntu1~18.04 已经安装
libtsan0 : 依赖: gcc-8-base (= 8.3.0-6ubuntu1~18.04.1) 但是 8.4.0-1ubuntu1~18.04 已经安装
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。
最直接的提示是用 apt --fix-broken install,但运行这条命令依然会报错:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在修复依赖关系... 完成
将会同时安装下列软件:
libatomic1 libc6 libc6:i386 libcc1-0 libgomp1 liblsan0 libmpx2 libobjc4 libstdc++6 libtsan0
建议安装:
glibc-doc glibc-doc:i386 locales:i386
下列【新】软件包将被安装:
libc6:i386
下列软件包将被升级:
libatomic1 libc6 libcc1-0 libgomp1 liblsan0 libmpx2 libobjc4 libstdc++6 libtsan0
升级了 9 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 358 个软件包未被升级。
有 10 个软件包没有被完全安装或卸载。
需要下载 0 B/6,387 kB 的归档。
解压缩后会消耗 10.8 MB 的额外空间。
您希望继续执行吗? [Y/n] y
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
dpkg: 警告: 无法找到软件包 libssl1.1:amd64 的文件名列表文件,现假定该软件包目前没有任何文件被安装在系统里。
(正在读取数据库 ... 系统当前共安装有 164234 个文件和目录。)
正准备解包 .../libc6_2.27-3ubuntu1.2_amd64.deb ...
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
dpkg: 处理归档 /var/cache/apt/archives/libc6_2.27-3ubuntu1.2_amd64.deb (--unpack)时出错:
new libc6:amd64 package pre-installation script subprocess returned error exit status 1
正准备解包 .../libc6_2.27-3ubuntu1.2_i386.deb ...
正在反配置 libc6:amd64 (2.27-3ubuntu1) ...
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
dpkg: 处理归档 /var/cache/apt/archives/libc6_2.27-3ubuntu1.2_i386.deb (--unpack)时出错:
new libc6:i386 package pre-installation script subprocess returned error exit status 1
在处理时有错误发生:
/var/cache/apt/archives/libc6_2.27-3ubuntu1.2_amd64.deb
/var/cache/apt/archives/libc6_2.27-3ubuntu1.2_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
我尝试了百度上诸多的关于“E: Sub-process /usr/bin/dpkg returned an error code (1)”的错误解决方案,但都不能解决这个问题。
- 解决办法
最后在stackoverflow上找到了解答:
stackoverflow
https://stackoverflow.com/questions/62843154/i-cant-run-apt-get-commands-apt-fix-broken-install-doesnt-work-the-followi
在第二个错误信息里,有这么一段:
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
config.dat被另一个进程锁定,资源暂时不可用。如果你用fuser -v去看这个config.dat
sudo fuser -v /var/cache/debconf/config.dat
用户 进程号 权限 命令
/var/cache/debconf/config.dat:
root 6202 F.... frontend
就可以看到是6202这个进程在占用config.dat,下面你只需要
sudo kill <PID> #这里PID=6202
这样就可以正常的
sudo apt-get install -f
sudo apt-get update
在尝试使用apt安装软件时遇到了依赖关系错误,错误提示包括'E: Sub-process /usr/bin/dpkg returned an error code (1)'。尝试了多种百度上的解决方法无效。最终在Stack Overflow上找到答案,问题根源是config.dat文件被其他进程占用。通过运行'fuser -v /var/lib/dpkg/info/config.dat'找出占用进程,并使用'kill <PID>'杀死该进程,从而成功解决问题。
1968

被折叠的 条评论
为什么被折叠?



