debian: удалить или переустановить пакет в очень плохом несогласованном состоянии
У меня проблема с управлением пакетами:
В какой-то момент я должен был прервать обновление или что-то еще, потому что пакет bluez сломался. Я попытался удалить и / или переустановить, но я не получаю ничего, кроме ошибок. Я не могу выполнять какие-либо операции с apt, пока этот пакет не работает.
- Как некоторые пакеты deb найдены dpkg-query, пока они еще не установлены?
- понимание "dpkg --status-fd n"
- Почему не удается увеличить приоритет Chromium и установить его интернет-браузер по умолчанию в Debian?
- Как воссоздать / var / lib / dpkg / status?
- Почему apt-get отказывается устанавливать cdefs.h (помимо символической ссылки)?
Результат моей попытки удалить пакет
$ sudo aptitude remove bluez The following packages will be REMOVED: bluez The following partially installed packages will be configured: dictionaries-common dmsetup grub-pc ifupdown install-info rsyslog 0 packages upgraded, 0 newly installed, 1 to remove and 235 not upgraded. Need to get 0 B of archives. After unpacking 1,737 kB will be freed. dpkg: error processing bluez (--remove): Package is in a very bad inconsistent state - you should reinstall it before attempting a removal. configured to not write apport reports Errors were encountered while processing: bluez E: Sub-process /usr/bin/dpkg returned an error code (1) A package failed to install. Trying to recover: Setting up install-info (4.13a.dfsg.1-8) ... /var/lib/dpkg/info/install-info.postinst: 32: /var/lib/dpkg/info/install-info.postinst: update-info-dir: not found dpkg: error processing install-info (--configure): subprocess installed post-installation script returned error exit status 127 Setting up ifupdown (0.7~alpha5+really0.6.15) ... /var/lib/dpkg/info/ifupdown.postinst: 122: /var/lib/dpkg/info/ifupdown.postinst: update-rc.d: not found dpkg: error processing ifupdown (--configure): subprocess installed post-installation script returned error exit status 127 Setting up locales (2.13-18) ... /var/lib/dpkg/info/locales.postinst: 64: /var/lib/dpkg/info/locales.postinst: locale-gen: not found dpkg: error processing locales (--configure): subprocess installed post-installation script returned error exit status 127 Setting up dictionaries-common (1.11.6) ... /var/lib/dpkg/info/dictionaries-common.postinst: 45: /var/lib/dpkg/info/dictionaries-common.postinst: update-dictcommon-aspell: not found dpkg: error processing dictionaries-common (--configure): subprocess installed post-installation script returned error exit status 127 Setting up grub-pc (1.99-12) ... /var/lib/dpkg/info/grub-pc.postinst: line 438: grub-mkdevicemap: command not found /var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found /var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found /var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found /var/lib/dpkg/info/grub-pc.postinst: line 559: grub-install: command not found /var/lib/dpkg/info/grub-pc.postinst: line 669: update-grub: command not found dpkg: error processing grub-pc (--configure): subprocess installed post-installation script returned error exit status 127 Setting up dmsetup (2:1.02.65-1) ... /var/lib/dpkg/info/dmsetup.postinst: 8: /var/lib/dpkg/info/dmsetup.postinst: update-initramfs: not found dpkg: error processing dmsetup (--configure): subprocess installed post-installation script returned error exit status 127 Setting up rsyslog (5.8.5-1) ... /var/lib/dpkg/info/rsyslog.postinst: 45: /var/lib/dpkg/info/rsyslog.postinst: update-rc.d: not found dpkg: error processing rsyslog (--configure): subprocess installed post-installation script returned error exit status 127 Errors were encountered while processing: install-info ifupdown locales dictionaries-common grub-pc dmsetup rsyslog
Я запускаю тестирование Debian. Действительно ли эта проблема связана с этим конкретным пакетом, или это проблема с dpkg? Что мне нужно сделать, чтобы исправить мой менеджер пакетов?
5 Solutions collect form web for “debian: удалить или переустановить пакет в очень плохом несогласованном состоянии”
Раньше я не встречал этого сообщения, поэтому я предполагаю, что он имеет значение bluez. Вы пытались переустановить сообщение?
apt-get install --reinstall bluez
Вы также можете попробовать использовать dpkg для установки / настройки пакета bluez из кеша apt. Найдите пакет bluez в / var / cache / apt. Установите как это (как root):
dpkg -i <bluez debian package>
Это может быть совпадением, но все ошибки связаны с вызовом программ в /usr/sbin
: update-info-dir
, update-rc.d
, locale-gen
, update-dictcommon-aspell
, grub-mkdevicemap
, grub-probe
, grub-install
, update-grub
, update-initramfs
, update-rc.d
, а также invoke-rc.d
bluez
из bluez
alls в live /usr/sbin
.
Первое, что нужно проверить, – это /usr/sbin
в корневом PATH
, но вряд ли это будет проблемой, потому что dpkg
обычно громко жалуется, если это не так. Фактически, из-за сжатия, dpkg громко жалуется, если он не может найти update-rc.d
в PATH
, поэтому странно, что rsyslog
postinst не может найти этот исполняемый файл, хотя dpkg
не жалуется.
Что произойдет, если вы запустите эти команды (с правами root)?
type update-rc.d ls -l /usr/sbin/update-rc.d file /usr/sbin/update-rc.d update-rc.d --help file /bin/sh
Результат этих команд может предложить исправить. Если вы найдете интересные предложения, но не понимаете, что они означают, отредактируйте свой вопрос, чтобы добавить эту информацию. Также сообщайте о какой-либо «необычной» о вашей системе (SELinux, chroot, установке с двойной архитектурой, …).
Эта ошибка обычно появляется, если пакет не установлен правильно. Что значит
dpkg -l bluez
показать? Обычно это происходит двумя способами
-
Установка была прервана.
-
Что-то не так с сценарием {pre / post} -install bluez (или аналогичным).
Что касается первого, знаете ли вы о прерванной установке? Если это проблема, переустановка может решить проблему.
Если последнее, вы должны сначала попробовать переустановить. Однако в последнее время вам, возможно, придется вручную отредактировать скрипты {pre / post} – {install / remove}, в зависимости от того, где проблема, и хотите ли вы попытаться установить ее правильно или просто хотите полностью удалите его. Обычно проблема в том, что что-то в скриптах терпит неудачу и вызывает ошибку dpkg, поэтому решение заключается в том, чтобы отредактировать эту вещь. Все такие скрипты находятся в /var/lib/dpkg/info
. Ищите bluez.postinst
или подобное. NB: Если это проблема, это может быть ошибка, поэтому, пожалуйста, обязательно отправьте отчет об ошибке в систему отслеживания ошибок Debian.
Мне кажется, что у вас здесь несколько ошибок, а не только для пакета bluez
.
Когда вы запускаете aptitude remove
, он продолжает настраивать несколько пакетов, большинство из которых реализуют базовые функциональные возможности системы (например, grub, ifupdown), что говорит о том, что обновление было прервано или существует некоторая ошибка в дисковой / файловой системе, которая помешала ему выполнить чистое ,
То есть остальные пакеты, не обновляющиеся чисто, вероятно, являются признаком больших проблем. Действительно, журнал, который вы опубликовали, говорит:
/var/lib/dpkg/info/install-info.postinst: 32: /var/lib/dpkg/info/install-info.postinst: update-info-dir: not found dpkg: error processing install-info (--configure): subprocess installed post-installation script returned error exit status 127
Таким образом, конфигурация install-info
не может быть завершена, потому что update-info-dir
не может быть найден. Обратите внимание, что «не найден» в этом контексте также может означать «не выполнимый». Аналогично, другие пакеты терпят неудачу, потому что эти программы не могут быть найдены:
grub-install, grub-mkdevicemap, grub-probe, locale-gen, update-dictcommon-aspell, update-grub, update-info-dir, update-initramfs, update-rc.d
В моей системе из этих пакетов устанавливаются отсутствующие файлы:
================================== =================== File location Package ================================== =================== /usr/sbin/update-dictcommon-aspell dictionaries-common /usr/sbin/grub-mkdevicemap grub-common /usr/sbin/grub-probe grub-common /usr/lib/grub-legacy/update-grub grub-pc /usr/sbin/grub-install grub-pc /usr/sbin/update-grub grub-pc /usr/sbin/update-initramfs initramfs-tools /usr/sbin/update-info-dir install-info /usr/sbin/locale-gen locales /usr/sbin/update-rc.d sysv-rc
В качестве первого этапа отладки я тогда проверял бы, что файлы фактически существуют, являются читабельными и исполняемыми.
Затем попробуйте запустить каждый из них с параметром --help
: они работают правильно?
Если оба вышеуказанных теста завершатся успешно, вы можете переустановить эти пакеты, начиная с sysv-rc, initramfs-tools, grub-pc и grub-common ( aptitude reinstall grub-pc grub-common
).
Когда вы aptitude reinstall bluez
эту часть, aptitude reinstall bluez
чтобы вернуть bluez
в нормальное состояние, после чего вы можете удалить его.
sudo dpkg-reconfigure <packages> --force
с последующим
sudo dpkg --purge --force-all <packages>