Как восстановиться после неудачного обновления (сбой «apt-get -f install» и «dpkg --configure -a»)?

14

Во время обновления с lucid (10.04) до точного (12.04) сессия X зависла, и я пытался восстановить обновление, чтобы получить стабильную систему. Я выполнил следующие шаги:

  1. Использовал ssh для входа в систему через сеть.
  2. Проверено содержимое /var/log/dist-upgradeкаталога. Там не было никакой активности main.log, apt.logили term.log.
  3. top показал, что процесс «точный» использует около 3% ЦП, но я не смог найти доказательств того, что процесс обновления все еще делал что-то.
  4. 'dpkg' не показывался в топе, но он придумал pgrep dpkg | xargs ps
  5. Убил "dpkg" и "точные" процессы
  6. Попытался восстановить обновление, запустив sudo fuser -vki /var/lib/dpkg/lock;sudo dpkg --configure -a. Это было частично успешно (некоторые пакеты были настроены), но не удалось с сообщением Processing was halted because there were too many errors. Я запускал одну и ту же команду несколько раз, и каждый раз некоторые пакеты были настроены, но другие не работали.
  7. Пробовал бегать sudo apt-get -f install. Это терпит неудачу с подобными ошибками к dpkg.

Сложившаяся ситуация такова dpkg --configure -aи sudo apt-get -f installзавершается с двумя видами ошибок:

  1. Проблемы с зависимостями, например:

    dpkg: dependency problems prevent configuration of cifs-utils:
    cifs-utils depends on samba-common; however:
    Package samba-common is not configured yet.
    dpkg: error processing cifs-utils (--configure):
    dependency problems - leaving unconfigured
    
  2. Конфликт ресурсов, например:

    debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
    

Кроме того, кажется, есть ссылка на потенциальные проблемы с загрузкой, поэтому я не хочу перезагружаться, не исправив сначала установку:

    dpkg: too many errors, stopping
    Processing triggers for initramfs-tools ...
    update-initramfs: Generating /boot/initrd.img-3.2.0-25-generic
    cryptsetup: WARNING: failed to detect canonical device of /dev/sda1
    cryptsetup: WARNING: could not determine root device from /etc/fstab

Итак, мой вопрос, как получить рабочую установку при dpkg --configure -aсбое?

rudivonstaden
источник
Следуйте инструкциям по адресу help.ubuntu.com/community/…, но у вас все еще есть неразрешенные зависимости. Скачиваем ISO и будем делать чистую установку.
rudivonstaden

Ответы:

6

Мне удалось спасти обновление, хотя я не уверен на 100%, что сработало. Другие могут все еще извлечь выгоду:

  1. Мне удалось восстановить сеанс X, переключившись на терминал командной строки (Ctl + Alt + F2), а затем обратно на терминал X (Ctl + Alt + F7), который затем попросил меня снова войти в систему. Система была нестабильной, но работала. Затем я смог закрыть пару запросов, связанных с обновлением.

  2. Кажется, что менеджер обновлений не отключил PPA, поэтому я вычистил /etc/apt/sources.list.d/ (удалил все записи). На IRC (#ubuntu) было предложено использовать ppa-purge для очистки PPA, но в итоге я просто удалил их.

  3. После этого sudo apt-get updateи sudo apt-get -f installвыяснил большинство оставшихся проблем, но все еще были проблемы с зависимостямиsamba .

  4. Мне удалось исправить самбу, удалив ее ( sudo apt-get remove samba) и переустановив (sudo apt-get install samba ).

После этого система была более или менее стабильной. Мне пришлось также удалить и переустановить Unity после перезапуска, но в остальном он работал хорошо.

rudivonstaden
источник
1

У меня была эта проблема сегодня, пытаясь обновить до 14.04. Я заметил подобные сообщения как:

debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable

Я привык sudo fuser /var/cache/debconf/config.datвыяснять, какой процесс застрял. Обратите внимание, что вы должны найти точный файл, который «застрял». По-видимому, какая-то внешняя программа, которая не выскочила должным образом, но заблокировала ход обновления. После уничтожения этого процесса я смог возобновить исправление системы обычными командами.

jippie
источник
0

У меня была похожая проблема: 1. Synaptics не запускается ==> Сообщение об ошибке: «запустить sudo dpkg --configure -a»

  1. "sudo dpkg --configure -a" завершится ошибкой и перезагрузит мой компьютер (несколько раз)

  2. Все намерения "sudo apt-get ..." завершатся неудачно с одним и тем же сообщением об ошибке: $ sudo apt-get autoclean.

РАБОТАЛ ДЛЯ МЕНЯ: 1. Несколько раз запустил «sudo apt-get update», пока больше не загрузится пакет.

PASS N: Ign http://es.archive.ubuntu.com trusty / universe Translation-es_ES Descargados 4,294 Кбайт, 31 сек. (137 кБ / с) E: se interrumpió la ejecución de dpkg, debe ejecutar manualmente «sudo dpkg --configure -a» для решения проблем $

Не PASS N + 1: Ign http://es.archive.ubuntu.com испытанных / вселенная Translation-es_ES E: се interrumpió ла ejecución де Dpkg, Деб ejecutar manualmente «Суда Dpkg --configure -a» пункт corregir эль проблема- $ ПОКА НЕТ "Descargados" сообщение появляется (скачать).

  1. Запустил снова "sudo dpkg --configure -a"

И он работал тогда ... не уверен, почему / как. Но теперь хорошо.

Кристоф Трилле
источник