我正在尝试从 18.10 Cosmic 升级。Whoopsie 引发了问题。我无法卸载它,也无法停止它。有没有办法解决这个问题,以便我可以完成升级?
如果我遗漏了一些显而易见的东西,请见谅。我已经好几年没怎么碰过 Linux 了,我正在尝试让这台旧笔记本电脑恢复运行。
Preparing to unpack .../whoopsie_0.2.69ubuntu0.3_amd64.deb ...
Failed to reload daemon: Access denied
Failed to retrieve unit state: Access denied
Failed to stop whoopsie.service: Access denied
See system logs and 'systemctl status whoopsie.service' for details.
invoke-rc.d: initscript whoopsie, action "stop" failed.
dpkg: warning: old whoopsie package pre-removal script subprocess returned error exit status 1
dpkg: trying script from the new package instead ...
Failed to reload daemon: Access denied
Failed to retrieve unit state: Access denied
Failed to stop whoopsie.service: Access denied
See system logs and 'systemctl status whoopsie.service' for details.
invoke-rc.d: initscript whoopsie, action "stop" failed.
dpkg: error processing archive /var/cache/apt/archives/whoopsie_0.2.69ubuntu0.3_amd64.deb (--unpack):
new whoopsie package pre-removal script subprocess returned error exit status 1
Failed to reload daemon: Access denied
Failed to reload daemon: Access denied
Failed to retrieve unit state: Access denied
Failed to start whoopsie.service: Access denied
See system logs and 'systemctl status whoopsie.service' for details.
invoke-rc.d: initscript whoopsie, action "start" failed.
Failed to get properties: Access denied
dpkg: error while cleaning up:
installed whoopsie package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/whoopsie_0.2.69ubuntu0.3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
room@room-pc:~$
如果我试图阻止它:
room@room-pc:~$ sudo systemctl stop whoopsie
Failed to stop whoopsie.service: Access denied
See system logs and 'systemctl status whoopsie.service' for details.
room@room-pc:~$
如果我尝试删除它:
The following packages will be REMOVED:
whoopsie*
0 upgraded, 0 newly installed, 1 to remove and 668 not upgraded.
973 not fully installed or removed.
After this operation, 109 kB disk space will be freed.
Do you want to continue? [Y/n] y
dpkg: error processing package whoopsie (--remove):
package is in a very bad inconsistent state; you should
reinstall it before attempting a removal
dpkg: too many errors, stopping
Errors were encountered while processing:
whoopsie
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)
room@room-pc:~$
那么,我该如何解决这个问题并成功升级系统呢?
答案1
正如所提到的普鲁莫,如果你想升级那么
备份您的资料并重新安装受支持的版本。没有适合您的升级路径。要升级到受支持的版本,您需要使用此路径 18.10 -> 19.04 -> 19.10 -> 20.04,但 19.04 和 19.10 也不受支持。
注意 - 我只是告诉您如何在安装时修复错误。
简短回答
一个简单有效的解决方法是强制覆盖问题包并重新安装它们
只需运行:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/whoopsie_0.2.69ubuntu0.3_amd64.deb
长答案
介绍
该错误消息Sub-process /usr/bin/dpkg returned an error code (1)
表明软件包安装程序存在问题。在 Ubuntu 中,软件安装失败或安装程序损坏时可能会发生这种情况。
此错误中的关键短语是/usr/bin/dpkg
。这指的是 Linux 的 dpkg 软件包安装程序。软件包安装程序是一个跟踪软件、更新和依赖项的应用程序。如果它损坏,任何新的软件安装都会导致此错误消息。
我们介绍了几种可能的解决方案,从容易解决的直接解决方案到更复杂的流程。本指南将帮助您解决 Ubuntu 操作系统上的 dpkg 返回错误代码 1。
本答案涵盖的方法
方法1:重新配置dpkg数据库。
方法2:强制安装软件。
方法 3:删除不良软件包。
方法4:清理未使用的软件包。
方法五:覆盖包文件。
方法 6:删除帖子文件。
样本误差
Errors were encountered while processing:
google-chrome-stable
E: Sub-process /usr/bin/dpkg returned an error code (1)
在这里你可以看到problem_package
是google-chrome-stable
,但在你的情况下,这是糟糕的
方法 1:重新配置 dpkg 数据库
此错误的触发因素之一是 dpkg 数据库损坏。这可能是由于软件包安装突然中断而导致的。重新配置数据库是解决此问题的一种方法。
为此,只需执行以下命令:
$ sudo dpkg --configure -a
这将重新配置安装过程中未安装的解压软件包。
方法 2:强制安装软件
运行以下命令执行强制安装:
$ sudo apt-get install -f
或者,
$ sudo apt-get install --fix-broken
这里,-f
(或--fix-broken
)选项将尝试纠正具有损坏依赖关系的 Ubuntu 系统。
删除错误包
如果您知道哪个软件导致了系统错误,您可以将其删除。
输入命令和package_name
导致问题的软件名称:
sudo apt-get remove --purge package_name
该--purge
选项指示系统在卸载的同时删除配置文件。这有助于清除有问题的软件的所有痕迹。
清除未使用的软件包。
要执行此操作,只需运行:
sudo apt autoremove
该autoremove
选项只是清除不需要的软件。
覆盖/删除包文件
有几次,一些软件包卡在了 apt 中,有时会开始导致错误。
覆盖这些文件(这也会重新安装有问题的软件包)
sudo dpkg -i --force-overwrite /var/cache/apt/archives/package_name.deb
sudo apt -f install
强制安装是可选的
如果您想删除这些文件(这不会重新安装该包)
sudo rm -rf /var/cache/apt/archives/*.deb
sudo apt -f install
删除与包关联的帖子文件
这应该是你的最后手段。
最后,您可以手动删除与有问题的包相关的所有文件。首先,您需要找到位于/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
此后,您可以再次尝试重新安装该软件包。
另一个可行的解决方案
根据建议诺伯特你应该尝试重新安装有问题的软件包
export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
cd ~/Downloads
apt-get download python3-minimal
sudo -E dpkg -i --force-all ./python3-minimal*.deb
sudo -E dpkg --configure -a
sudo -E apt-get install -f
sudo -E apt-get install --reinstall python3-minimal
sudo -E apt-get install --reinstall $(dpkg -l | grep ^ii | grep python | awk '{print $2}')
sudo -E dpkg --configure -a
sudo -E apt-get install -f
sudo -E apt-get install aptitude
sudo -E aptitude safe-upgrade
sudo -E aptitude dist-upgrade
mkdir ~/Downloads/debs
cd ~/Downloads/debs
apt-get download package_name
sudo dpkg -i --force-all ./package_name*.deb
一般来说,这应该可行:)
结论
dpkg 错误消息表明包安装程序存在问题,通常是由安装过程中断或数据库损坏引起的。
通过遵循这些步骤,您现在应该有几种方法来修复 dpkg 错误消息并获得有效的包安装程序。
致谢:
https://phoenixnap.com/kb/fix-sub-process-usr-bin-dpkg-returned-error-code-1
https://www.tecmint.com/sub-process-usr-bin-dpkg-returned-an-error-in-ubuntu/amp/
https://ostechnix.com/fix-sub-process-usr-bin-dpkg-returned-an-error-code-1-in-ubuntu/