如何中止安装带有 debian 软件包的可卸载软件包

如何中止安装带有 debian 软件包的可卸载软件包

总长DR

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

我只是想让系统明白它可以不再想安装这个软件包。我该怎么做呢?

更长的完整版

我的服务器运行在 Debian 10 上。它从 1996 年开始附带mawk-1.3.3(根据mawk -W version)。在我的 ubuntu 笔记本电脑上mawk-1.3.4,我在笔记本电脑上编写的脚本与mawk-1.3.3.

所以我开始寻找一种快速的方法(是的,我知道......)在我的服务器上安装它。碰巧是mawk-1.3.4在下unstable一个Debiantesting中。sid我偷偷下载了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 -r并发布了一个dpkg -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-filesand bashmawk两者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忘记我想要的安装这个包。

答案1

我认为没有必要进行任何黑客攻击;要求apt安装当前的 Debian 10 版本就足够了:

sudo apt install mawk/buster

或者,询问dpkg

sudo dpkg -i /var/cache/apt/archives/mawk_1.3.3-17+b3_amd64.deb

(假设您的 APT 缓存中仍然有该包)。

相关内容