Как исправить ошибку «Пакет находится в очень плохом несовместимом состоянии»?


94

Я не могу обновить свою систему, потому что она зависает при установке стороннего обновления (zramswap-enabler)!

Иногда я получаю следующее сообщение в диспетчере обновлений:

Не удалось инициализировать информацию о пакете. При инициализации информации о пакете возникла неразрешимая проблема.

Пожалуйста, сообщите об этой ошибке в пакет 'update-manager' и добавьте следующее сообщение об ошибке:

E:The package zramswap-enabler needs to be reinstalled, but I can't find an archive for it.

Я попытался удалить zramswap-enabler, но это невозможно, потому что я получаю следующее сообщение:

dpkg: error processing zramswap-enabler (--remove):
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
Errors were encountered while processing:
 zramswap-enabler
E: Sub-process /usr/bin/dpkg returned an error code (1)

На самом деле я бы действительно переустановил этот пакет, но он не может этого сделать! Если я удалю этот сторонний PPA, то система предупредит меня об очень серьезной проблеме.

Так почему я не могу установить / переустановить / удалить / обновить этот пакет и почему зависает средство обновления, если я пытаюсь обновить?


Ответы:


118

Отредактировано вне вопроса и добавлено как ответ.

  1. Убедитесь, что ваш PPA настроен.

  2. Удалите сломанный пакет с помощью следующей команды:

    sudo dpkg --remove --force-remove-reinstreq zramswap-enabler
    
  3. Установите пакет снова:

    sudo apt-get install zramswap-enabler
    
  4. После перезагрузки (не обязательно) вы сможете правильно установить обновления!

На самом деле вы можете исправить любые проблемы «Пакет в очень плохом несовместимом состоянии» с помощью этого решения!


1
@CharlesL Не проблема! Обратите внимание, что этот ответ - вики сообщества, и решение вопроса изначально было найдено автором вопроса, поэтому я не могу поверить в это. Все, что я сделал, это отредактировал и реорганизовал, чтобы переместить это в ответ.
ζ--

У меня были некоторые проблемы с этим (14.04-16.04). «gcc-doc» не работал. Появилось сообщение об ошибке /var/cache/apt/archives/gcc-doc_4%3a5.3.1-1ubuntu1_amd64.deb, и инструменты отвергли имя «%», поэтому полное имя тоже не сработало. Я заканчивал тем, что удалял файлы, пока он не был счастлив - см. Ubuntuforums.org/showthread.php?t=2321414&page=2 .
Фадден

1
Мне пришлось использовать комбинацию --force-remove-reinstreqи --purge --force-dependsкогда- cpp-5то возникли проблемы с зависимостями.
дашесы

71

Это сработало для меня после того, как я по большей части исследовал форумы AskUbuntu и Ubuntu! ( Источник ). Я бегу Lubuntu 14.04

sudo mv /var/lib/dpkg/info/<packagename>.* /tmp/
sudo dpkg --remove --force-remove-reinstreq <packagename>
sudo apt-get remove <packagename>
sudo apt-get autoremove && sudo apt-get autoclean

2
В заключение! Это
помогло,

1
Благодарю. Это спасло меня БОЛЬШОЕ ВРЕМЯ! Я попытался пропустить последнюю строку, за которой следовал a, apt-get install...и мне пришлось начать все сначала и сделать ВСЕ четыре строки, после чего я смог наконец очистить свой пакет. :)
Райан Х.

1
Единственный верный ответ, который работает в любое время.
дважды

1
Это помогло, когда у меня возникли проблемы с gcc-doc и cpp-doc после обновления с 14.04. У меня были установлены более свежие инструменты из ppa: ubuntu-toolchain-r / test, и они все испортили. Мораль истории, очистите ppas перед обновлением до нового выпуска. Но этот совет помог мне исправить ситуацию после этого.
Шарфэси

1
Это сработало для меня. Я удалил 1 файл, чтобы исправить мою проблему удаления кактусов. Удален /var/lib/dpkg/info/cacti.list
Безумный

13

У меня была ситуация хуже, чем эта. Мне пришлось удалить наполовину установленные пакеты, форсируя зависимости.

sudo dpkg --remove --force-remove-reinstreq --force-depends <package-name>

Затем мне пришлось переустановить их

sudo apt-get -f install

Это должно решить любую проблему. Но, пожалуйста, убедитесь, что у вас есть подключение к сети, когда вы пытаетесь это сделать. В противном случае вам придется пережить еще больше неприятностей.


1
Я получаю сообщение об ошибке: dpkg: пакет обработки ошибок debconf (--configure): пакет находится в очень плохом несовместимом состоянии; Вам следует переустановить его перед попыткой настройки.
Обнаружены

8

Другие ответы верны, если упомянуть удаление пакета, за которым apt-get install -fследует переустановить сломанный пакет (и полностью установить другие наполовину установленные пакеты). Однако это можно сделать за один шаг:

sudo apt-get install -f --reinstall zramswap-enabler

2

Я попытался бы очистить состояние моей установки, прежде чем прибегнуть к удалению того, что создало проблему:

apt-get autoclean
apt-get update
apt-get upgrade
apt-get install -f

гораздо лучший способ решить эту проблему в большинстве случаев и, по крайней мере, в одном случае, помог мне, когда другой способ не сработал (потому что огромные зависимости от удаляемого пакета)


Это приводит к ошибке:sh: 0: getcwd() failed: No such file or directory /bin/sh: 1: /usr/sbin/dpkg-preconfigure: Permission denied
Игорь Ганапольский

1
Я предполагаю, что вы сделали это с учетной записью без прав администратора. Попробуйте префикс каждой строки с помощью sudo или полностью войдите в систему как пользователь root (то есть с: «sudo su» и вашим паролем или «su» и паролем администратора)
Dr. Azrael Tod

1

У меня была похожая проблема с quagga, демоном маршрутизации. Просто переустановка пакета работала для меня:

# apt-get install -f  
<some output ommited>
dpkg: warning: overriding problem because --force enabled:
Package is in a very bad inconsistent state - you should
reinstall it before attempting a removal.

wget http://security.debian.org/debian-security/pool/updates/main/q/quagga/quagga_0.99.22.4-1+wheezy3_i386.deb
dpkg -i quagga_0.99.22.4-1+wheezy3_i386.deb

Теперь все в порядке снова:

#apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

1

То же самое случилось со мной, когда я отключился от интернета во время загрузки пакета wireshark. После этого, когда я попытался переустановить его, он выдал ту же ошибку «пакет находится в очень плохом несовместимом состоянии». Я перепробовал все команды для установки, очистки, удаления и переустановки, но ничего не получалось. После небольшого поиска в Google, я наткнулся на команду

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libwireshark8_2.2.6+g32dac6a-2ubuntu0.16.04_amd64.deb

(изменить libwireshark8_2.2.6+g32dac6a-2ubuntu0.16.04_amd64.debс любым пакетом, создающим проблему, в каталоге /var/cache/apt/archives/).

После того, как все вопросы были решены. Я снова удалил пакет, используя

sudo apt --purge remove libwireshark8:amd64
sudo apt autoremove полностью удалить пакет.

После этого я снова установил Wireshark с помощью: sudo apt-get install wireshark.
Теперь все работает гладко!

Ссылки:
Как решить ” Подпроцесс usr bin dpkg вернул код ошибки 1 ″ Ошибка?
Исправить ошибку dpkg

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.