优秀的编程知识分享平台

网站首页 > 技术文章 正文

ubuntu安软件报错Sub-process /usr/bin/dpkg returned an error 解决

nanyue 2024-10-14 11:42:47 技术文章 5 ℃

问题描述:

Ubuntu在apt 安装软件时,报错如下:

E: Sub-process /usr/bin/dpkg returned an error code (1)

之后无论用sudo apt install -f or sudo apt autoremove 等常见的修复命令都是无效的。

原因:

网上大多数博客指出,此错误是由于软件安装失败安装程序损坏而触发的。dpkg这一package installers 出现了问题。这一错误一般是使用dpkg安装软件失败或者被中断后出现的。命令行中/use/bin/dpkg这一关键信息说明了系统的dpkg软件出错了

解决方法:

方案一:(网上绝大多数用此方法,我也是用此方法解决)

备份原info文件,防止失败还原用

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bak

新建info文件

sudo mkdir /var/lib/dpkg/info

更新apt相关信息

sudo apt update && sudo apt -f install

再次安装软件,报错解决了


其他解决方法:

以下方案收集于网上其他文章,本人未曾尝试过,写出来仅供参考使用。

方案二:

重新配置 package database,直接运行一下命令即可:

sudo dpkg --configure -a

这一命令把那些已经解压但是没有被安装的package进行重新配置。在特定的时间中断安装可能会造成这一错误。这一命令尤其适用于安装进程被中断的情况。


方案三:

强制安装该软件

sudo apt-get install -f

方案四:

清除所有无用的软件,如果是旧的、过时的、无用的软件造成的错误,运行如下命令

sudo apt autoremove

方案五:

删除 post file,跟方案一差不多,方案一是在不知道的情况下,更改所有。

如果你知道导致这一错误的软件,你可以手动删除相关的文件。这些文件通常在/var/lib/dpkg/info文件夹下。执行如下命令

sudo ls –l /var/lib/dpkg/info | grep –i package_name

这一命令会将你安装的软件的所有引用列出来,之后通过如下命令删除它们:

sudo mv /var/lib/dpkg/info/package_name.* /tmp

这一命令将相关文件移动到/tmp文件夹下,之后运行如下命令进行更新

sudo apt-get update

方案六:

重写package file

执行以下命令:

sudo dpkg –i ––force–overwrite /var/cache/apt/archives/full_name_of_package

如果你不知道实际的package name,可以执行以下命令进行搜索:

ls /var/cache/apt/archies/*package_name*
最近发表
标签列表