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

Я не могу обновить свою систему, потому что она зависает при установке стороннего обновления (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, то система предупредит меня об очень серьезной проблеме.

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

8 ответов

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

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

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

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

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

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

Это сработало для меня после того, как я по большей части исследовал форумы 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

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

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

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

sudo apt-get -f install

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

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

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

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

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

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

У меня была похожая проблема с 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.

То же самое случилось со мной, когда я отключился от интернета во время загрузки пакета 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,
Теперь все работает гладко!

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

Я использовал это, чтобы исправить эту же проблему:

      apt reinstall [package] 
Другие вопросы по тегам