Как убрать намерение dpkg установить неустанавливаемый пакет из-за неразрешимых зависимостей

TLDR

Я выпустил 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 забыть о моем желании установить этот пакет.

PS: в связи с накоплением голосов за закрытие, так как это сообщение некоторые считают не по теме, я разместил вопрос здесь, как было предложено: https://unix.stackexchange.com/questions/643896/how-to-abort-installation-of-an-uninstallable-package-with-debian-packaging

-1
задан 7 April 2021 в 12:41

1 ответ

Установить версию, которая есть в дистрибутиве?

apt install mawk=1.3.3
1
ответ дан 23 April 2021 в 23:25

Другие вопросы по тегам:

Похожие вопросы: