在使用 dpkg -i 安装.deb软件包的过程中,会出现安装失败的可能。之后无论用sudo apt install -forsud apt autoremove等常见的修复命令都是无效的。网络上很多解决方案都直接给出需要运行的命令,不分析原因也不说明理由。我从来不尝试这样的解决方案,除非我自己知道或是只能死马当活马医。
不过针对Sub-process /usr/bin/dpkg returned an error code (1)的问题,很简单的就能找到原因。参考博客:https://phoenixnap.com/kb/fix-sub-process-usr-bin-dpkg-returned-error-code-1
Sub-process /usr/bin/dpkg returned an error code (1)说明dpkg这一package installers 出现了问题。这一错误一般是使用dpkg安装软件失败或者被中断后出现的。
命令行中/use/bin/dpkg这一关键信息说明了系统的dpkg软件出错了。任意一次新的安装都会报这样的错误。
针对这一问题有很多解决方案,有简单的也有复杂的。接下来就告诉大家如何修复这一问题。
重新配置 package database,直接运行一下命令即可:
sudo dpkg --configure -a
这一命令把那些已经解压但是没有被安装的package进行重新配置。在特定的时间中断安装可能会造成这一错误。这一命令尤其适用于安装进程被中断的情况。
如果方案一不行,你可以尝试自动解决依赖问题,安装该软件。执行以下命令:
sudo apt-get install -f
-f选项意味着修复问题。它会尝试修复损坏的依赖信息。这常常适用于解决因为网络问题而导致的安装失败。
如果你知道是哪个软件导致了这个问题,你可以卸载它。运行如下命令:
sudo apt-get remove --purge package_name
这一命令会卸载相关软件的所有痕迹。
如果是旧的、过时的、无用的软件造成的错误,运行如下命令
sudo apt autoremove
卸载无用的软件
如果你知道导致这一错误的软件,你可以手动删除相关的文件。这些文件通常在/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
执行以下命令:
sudo dpkg –i ––force–overwrite /var/cache/apt/archives/full_name_of_package
如果你不知道实际的package name,可以执行以下命令进行搜索:
ls /var/cache/apt/archies/*package_name*