Ошибка apt-get: apt-listchanges и debconf

Ошибка apt-get: apt-listchanges и debconf

Я постоянно получаю это сообщение:

Setting up apt-listchanges (3.10) ...
Traceback (most recent call last):
  File "/tmp/tmp.aulCeycFHm.aptlc/debconf-helper.py", line 6, in <module>
    import debconf
ImportError: No module named 'debconf'
dpkg: error processing package apt-listchanges (--configure):
 subprocess installed post-installation script returned error exit status 1
Processing triggers for man-db (2.7.6.1-2) ...
Errors were encountered while processing:
 apt-listchanges

debconf

~$ dpkg --status debconf
Package: debconf
Status: install ok installed
Priority: required
Section: admin
Installed-Size: 558
Maintainer: Debconf Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 1.5.60
Replaces: debconf-tiny
Provides: debconf-2.0
Pre-Depends: perl-base (>= 5.6.1-4)
Recommends: apt-utils (>= 0.5.1), debconf-i18n
Suggests: debconf-doc, debconf-utils, whiptail | dialog, libterm-readline-gnu-perl, libgtk2-perl (>= 1:1.130), libnet-ldap-perl, perl, libqtgui4-perl, libqtcore4-perl
Conflicts: apt (<< 0.3.12.1), cdebconf (<< 0.96), debconf-tiny, debconf-utils (<< 1.3.22), dialog (<< 0.9b-20020814-1), menu (<= 2.1.3-1), whiptail (<< 0.51.4-11), whiptail-utf8 (<= 0.50.17-13)
Conffiles:
 /etc/apt/apt.conf.d/70debconf 7e9d09d5801a42b4926b736b8eeabb73
 /etc/debconf.conf 8c0619be413824f1fc7698cee0f23811
Description: Debian configuration management system
 Debconf is a configuration management system for debian packages. Packages
 use Debconf to ask questions when they are installed.

ls -l /usr/lib/python*/dist-packages/debconf.py

ls -l /usr/lib/python*/dist-packages/debconf.py

решение1

Возможно, для вас это уже не важно, но я нашел обходной путь, по крайней мере для меня.

Проблема в том, что он не может найти его debconf.pyна вашем пути. В моем случае он использовал другой питон с другими настройками, чем те, что обычно были на моем пути.

В конце концов я нашел файл debconf.py в /usr/lib/python3/dist-packages/debconf.py. Для меня он python3.6имел неправильный путь, который можно найти, выполнив:

$ python3.6
>>> import sys
>>> sys.path

Что показало мне, что там не было того, что было на моем $PATH. Вместо того, чтобы слишком долго возиться, я просто запустил это:

# ln -s /usr/lib/python3/dist-packages/debconf.py /usr/local/lib/python3.6/site-packages

Место назначения может бытьв любом местекоторый отображается в этом sys.path. Вы, вероятно, могли бы скопировать вместо символической ссылки. Независимо от этого, это то, что я сделал, и это сработало для меня - я надеюсь, что вам повезет так же!

решение2

Эта ошибка начала появляться, когда я обновил свой вычислительный сервер с Debian jessieдо Debian stretch.

Моя проблема заключалась в том, что я (по глупости) вручную установил Python 3.5 на всю систему перед обновлением до stretch, и эта версия Python «маскировала» stretchустановку Python 3 по умолчанию. В частности, сыграли свою роль следующие факторы:

  • Моя ручная установка v3.5 поместила свою python3символическую ссылку в/usr/local/bin

  • Системный пакет Debian python3установил символические ссылки на/usr/bin

  • /usr/local/binбыл раньше в моем, $PATHчем был/usr/bin

Итак, чтобы исправить эту конкретную проблему, мне пришлось всего лишь переименовать /usr/local/bin/python3символическую ссылку, например, в /usr/local/bin/python3-local, и import debconfпосле вызова все заработало нормально python3.

Более полным решением, вероятно, было бы полное удаление общесистемной ручной версии Python 3.5 и ее повторная установка в изолированной среде.

Связанный контент