结论
我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
是在unstable
和testing
为sid
,下一个 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-files
和bash
,并且我对此有一种非常不好的预感:
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-files
和bash
(mawk
并且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