Ubuntu 修复Sub-process /usr/bin/dpkg returned an error code (1)报错

错误消息“ Sub-process /usr/bin/dpkg returned an error code (1)”表示软件包安装程序存在问题。在软件安装失败后,或者如果安装程序损坏,可能会在Ubuntu中发生这种情况。

此错误中的关键短语是/usr/bin/dpkg。这指的是Linuxdpkg软件包安装程序。软件包安装程序是跟踪软件、更新和依赖项的应用程序。如果它损坏,任何新的软件安装都将导致此错误消息。

在此提供几种可能的解决方案,从易于解决和直截了当的解决方案到更复杂的流程。本指南将帮助您解决Ubuntu操作系统上返回的dpkg returned an error code 1错误。


方法1:重新配置dpkg数据库

如果您的软件包数据库已损坏,重新配置它可以修复它。

输入以下命令:

1
sudo dpkg --configure -a

此命令重新配置已解压但不一定已安装的软件包。在错误的时间中断可能会导致该数据库损坏。如果您正在运行安装,并且该过程被中断,这特别有帮助。

方法2:强制安装软件

如果方法1不起作用,您可以尝试修复软件包安装程序中的依赖项。

输入以下内容:

1
2
3
4
sudo apt-get install -f

#-f 选项意味着修复损坏。它可修复包管理器中任何损坏的依赖项。如:当下载中断或缓存下载出现问题时,会发生依赖关系损坏。
#注意:依赖项是您正在安装的软件所需的其他软件包。软件包管理器可以帮助您跟踪依赖项。

方法3:删除坏软件包

如果您知道哪个软件在您的系统上造成了错误,您可以将其删除。

输入命令和package_name,并输入导致问题的软件的名称:

1
2
sudo apt-get remove --purge package_name
#--Purge 选项指示系统除了卸载外还要删除配置文件。这有助于消除违规软件的所有痕迹。

方法4:清理未使用的软件包

如果旧、过时或未使用的软件包导致问题,您可以通过删除未使用的软件包来解决问题。

在终端中输入以下命令:

1
sudo apt autoremove

注意:除非所有其他方法都失败,否则请避免使用接下来的2个选项。

方法5:删除Post文件

如果您知道导致问题的软件包的名称,您可以手动删除文件。安装文件通常位于/var/lib/dpkg/info文件中。

键入以下命令,并将package_name替换为损坏软件的名称:

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

这将生成您安装的软件的所有引用列表。

然后,您可以通过输入以下内容来删除它们:

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

此命令将文件移动到/tmp目录,在那里它们不会影响您的软件包管理器。

接下来,更新软件包管理器:

1
sudo apt-get update

之后,您可以重新安装损坏的软件。

方法6:覆盖包文件

如果您知道导致问题的软件包的名称,您可以强制覆盖。

使用以下命令将full_name_of_package替换为实际软件包名称:

1
sudo dpkg -i --force-overwrite /var/cache/apt/archives/full_name_of_package

注意:如果您不知道包裹的实际名称,您可以使用以下命令进行搜索:

1
ls /var/cache/apt/archies/*package_name*

package_name替换为您的软件名称。这应该返回该软件包名称的任何实例。注意确切的文件名,并将其键入上一个命令。


结论

Dpkg错误信息表明软件包安装程序存在问题,这通常是由安装过程中断或数据库损坏引起的。

通过遵循这些步骤,您现在应该有几种方法来修复dpkg错误消息并实现工作包安装程序。