修复"子进程/usr/bin/dpkg在Ubuntu中返回错误代码(1)"
升级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
手动删除它们。