修复"子进程/usr/bin/dpkg在Ubuntu中返回错误代码(1)"

时间:2020-03-21 11:48:53  来源:igfitidea点击:

升级Ubuntu 20.04 LTS桌面时,遇到这个错误"子进程/usr/bin/dpkg返回错误代码(1)"。
"Sub-process /usr/bin/dpkg returned an error code (1)"

它是Ubuntu和其他基于Deb的系统中的常见问题之一。
这通常由于应用程序安装失败而发生,或者在安装包时在中途中断或者中断DPKG包安装程序。

以下是我尝试升级我的Ubuntu桌面的命令:

$sudo apt update
$sudo apt upgrade

......这是示例错误消息:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  eog
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
21 not fully installed or removed.
Need to get 0 B/421 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 
(Reading database ... 230012 files and directories currently installed.)
Preparing to unpack .../eog_3.36.2-0ubuntu1_amd64.deb ...
Unpacking eog (3.36.2-0ubuntu1) over (3.36.1-1) ...
dpkg-deb (subprocess): decompressing archive member: lzma error: compressed data is corrupt
dpkg-deb: error: <decompress> subprocess returned error exit status 2
dpkg: error processing archive /var/cache/apt/archives/eog_3.36.2-0ubuntu1_amd64.deb (--unpack):
 cannot copy extracted data for './usr/lib/x86_64-linux-gnu/eog/libeog.so' to '/usr/lib/x86_64-linux-gnu/eog/libeog.so.dpkg-new': unexpected end of file or stream
Errors were encountered while processing:
 /var/cache/apt/archives/eog_3.36.2-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

修复"子进程/usr/bin/dpkg在Ubuntu中返回错误代码(1)"

如果我们遇到如上所述,请担心不!其中我已经给出了一些解决方法来解决"子进程/usr/bin/dpkg返回错误代码(1)"问题在Ubuntu及其变体中,如Linux Mint,Pop OS。

解决方案1 - 重新配置DPKG数据库

如果在中途停止或者中断包安装过程,则DPKG数据库可能已损坏。
重新配置DPKG数据库可能解决此问题。

要重新配置DPKG数据库,只需运行:

$sudo dpkg --configure -a

此命令将尝试修复损坏的DPKG数据库,然后重新配置所有损坏的包。
此命令通常修复DPKG返回错误代码(1)问题。
如果没有任何原因解决,请遵循后续解决方案。

解决方案2 - 强制安装应用程序

如果第一个方法不起作用,请运行以下命令以执行Force Install:

$sudo apt-get install -f

或者,

$sudo apt-get install --fix-broken

其中-f(或者--fix-backet)选项将尝试使用损坏的依赖项校正Ubuntu系统。

如果这两个解决方案没有帮助并且问题仍然存在,请尝试下一个解决方案。

解决方案3 - 从本地缓存文件夹中删除有问题的应用程序.deb文件并重新安装它

在错误消息(最后两行)中看到,EOG软件包导致此错误。

[...]
/var/cache/apt/archives/eog_3.36.2-0ubuntu1_amd64.deb 
E: Sub-process /usr/bin/dpkg returned an error code (1)

对于那些想知道的人来说,EOG(GNOME的简而言之)是GNOME桌面环境的官方和默认图像查看器。
所以这个包是有问题的,并没有让我升级我的Ubuntu。

安装包时,它将下载并保存在缓存文件夹/var/cache/apt /档案中/。

要修复此错误,请使用命令删除缓存包:

$sudo rm /var/cache/apt/archives/eog_3.36.2-0ubuntu1_amd64.deb

用包装替换Eog_3.36.2-0ubuntu1_amd64.deb。

清理包缓存文件夹:

$sudo apt-get clean
$sudo apt-get autoremove

更新源列表:

$sudo apt-get update

升级系统:

$sudo apt-get upgrade

最后,从官方存储库中获取新鲜软件包并重新安装如下:

$sudo apt-get install eog

这个解决方案为我工作。

解决方案4 - 删除有问题的应用程序

这应该是你的最后一个手段。
如果上述方法都不有帮助,请从下面的系统中删除有问题的包:

$sudo apt-get remove --purge eog
$sudo apt-get clean && sudo apt-get autoremove

此命令将使用系统的所有配置文件删除EOG。

并找到并删除与损坏包关联的所有文件。

要查找与包相关的所有文件,请运行:

$sudo ls -l /var/lib/dpkg/info | grep -i eog

示例输出:

-rw-r--r-- 1 root root 61926 Apr 24 13:42 eog.list
-rw-r--r-- 1 root root 5889 Mar 29 08:01 eog.md5sums

手动删除它们。