如何消除 dpkg 由于无法解决的依赖关系而安装无法卸载的软件包的意图

如何消除 dpkg 由于无法解决的依赖关系而安装无法卸载的软件包的意图

结论

dpkg -i PACKAGE从较新版本的发行版中发布了一个较新版本的 PACKAGE。它依赖于新的 libc6 包,因此安装失败。现在该包阻塞了整个apt系统。

我只是想让系统明白它可以停止安装这个包。我该怎么做?

较长的完整版

我的服务器是 Debian 10。它mawk-1.3.3从 1996 年起就已发布(根据mawk -W version)。在我的 ubuntu 笔记本电脑上mawk-1.3.4,我在笔记本电脑上编写的脚本与不兼容mawk-1.3.3

所以我去寻找一种快速方法(是的,我知道……)来在我的服务器上安装它。碰巧的是,它mawk-1.3.4是在unstabletestingsid,下一个 Debian。我偷偷下载了deb,想试试dpkg -i mawk_1.3.4.20200120-2_amd64.deb。这失败了:

 mawk depends on libc6 (>= 2.29); however:
  Version of libc6:amd64 on system is 2.28-10.

公平地说,这是不是要走的路,我该如何回到之前?反正什么都没安装,这应该不太难,不是吗?

我尝试过

apt --fix-broken install想要卸载base-filesbash,并且我对此有一种非常不好的预感:

The following packages will be REMOVED:
  base-files bash mawk rsync
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  base-files mawk (due to base-files) bash

我记得并对dpkg -rdpkg -r mawk的实际遗留版本有点担心mawk

 base-files depends on awk; however:                                                                                  
  Package awk is not installed.                                                                                       
  Package mawk which provides awk is to be removed.                                            
                                                                                                                      
dpkg: error processing package mawk (--remove):    
 dependency problems - not removing                               
Errors were encountered while processing:
 mawk

因此,我尝试安装gawk,巧妙地保持awk依赖关系完整,从而保持base-filesbashmawk并且gawk两者都可以提供awk)。但请记住,安装系统被阻止了,这是我从中获得的apt-get install gawk

The following packages have unmet dependencies:
 gawk : PreDepends: libsigsegv2 (>= 2.9) but it is not going to be installed
 mawk : Depends: libc6 (>= 2.29) but 2.28-10 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

而且它似乎不想让我在“指定解决方案”之前做任何事情。这很讽刺:我对这个问题有一个非常清晰和合理的解决方案不想再安装这个包。 我怎样才能做到这一点 ?

更多信息

好像dpkg告诉我它无法安装任何东西,我认为系统上没有任何东西真正被触及,所有这些问题似乎都位于的dpkg状态。

因此,无奈之下,我查看了一下/var/lib/dpkg,发现其中提到了罪魁祸首包status,以下是一些看起来很有趣的部分:

...
Package: mawk
Status: install ok unpacked
Priority: required
...
Architecture: amd64
Multi-Arch: foreign
Version: 1.3.4.20200120-2
Config-Version: 1.3.3-17+b3
...

如果有人有建议。我准备破解文件和文件夹/var/lib/dpkg,但这似乎是一个有点愚蠢的情况(而且似乎这也是很常见的情况),应该有一个很好的dpkg命令来礼貌地告诉dpkg忘记我想要安装这个包。

附言:由于某些人认为这篇文章与主题无关,导致关闭投票不断增加,因此我按照建议在此发布了问题:https://unix.stackexchange.com/questions/643896/how-to-abort-installation-of-an-uninstallable-package-with-debian-packaging

答案1

安装在发行版中找到的版本吗?

apt install mawk=1.3.3

相关内容