在Ubuntu和其他 基于Debian的系统中遇到软件包损坏问题并不罕见分布。有时,当你升级系统或安装软件包时,可能会遇到“Sub-process /usr/bin/dpkg returned an error code (1)”错误。
此错误中的关键短语是/usr/bin/dpkg,它指向Linux中使用的dpkg软件包安装程序。软件包安装程序管理软件、更新和依赖项。如果它被损坏,任何安装新软件的尝试都可能触发此错误消息。
例如,不久前,小编尝试升级到Ubuntu 22.04,结果遇到了dpkg错误,具体如下下图所示:
Errors were encountered while processing: google-chrome-stable E: Sub-process /usr/bin/dpkg returned an error code (1)
这表明google-chrome-stable软件包已损坏或损坏。这个问题有一些解决方法,所以不要认输或重装你的系统。
Sub-process /usr/bin/dpkg returned an error code (1)错误解决方法
让我们解决这个损坏的包错误的问题。我将引导您了解几种方法,从最简单的方法开始。这些初始步骤很简单,不需要太多努力。
方法1:重新配置dpkg包数据库
sudo dpkg --configure -a
这将重新配置在安装过程中未安装的解压包。
方法2:强制安装有问题的包
有时候软件包安装过程中可能会出现错误。发生这种情况时,可以使用 -f
选项强制安装软件包,如下所示:
sudo apt install -f 或者 sudo apt install --fix-broken
-f
和 --fix-broken
选项以互换使用来修复因包下载中断或缓存包下载而导致的损坏的依赖项。
方法3:删除或清除损坏或损坏的软件包
如果前两种解决方案未能解决问题,可以删除或清除有问题的软件包,命令如下:
sudo apt remove --purge package_name
例如,就小编而言,清除Google Chrome软件包就解决了该问题:
sudo apt remove --purge google-chrome-stable
然后调用以下命令删除所有旧的、未使用的和不必要的软件包,这也释放了硬盘驱动器上的空间:
sudo apt clean sudo apt autoremove
方法4:删除与包关联的所有文件
最后,可以手动删除与有问题的软件包关联的所有文件。首先,需要在/var/lib/dpkg/info目录中找到这些文件,如下所示:
sudo ls -l /var/lib/dpkg/info | grep -i package_name
列出文件后,可以将它们移动到/tmp目录,命令如下:
sudo mv /var/lib/dpkg/info/package-name.* /tmp
或者,可以使用rm命令手动删除文件:
sudo rm -r /var/lib/dpkg/info/package-name.*
最后更新包列表,命令:
$ sudo apt update
此后,可以通过重新安装软件包来再次尝试。
注意:请将上面的“package-name”替换成你自己实际出现问题的包名称。
总结
通过上面的分析可以知道,此类dpkg错误表示软件包安装程序存在问题,通常是由安装过程中断或dpkg数据库损坏引起的。通过上述任何解决方案都应该可以修复此错误。如果你遇到此类问题,那么可以通过尝试以上几种方法看看能否解决。
当然,出现“Sub-process /usr/bin/dpkg returned an error code (1)”错误的原因可能有多种,所以可能还有其它解决方案。如果你设法使用其它方法修复此错误,请分享出来以帮助可能遇到相同问题的其他人。