Назад | Перейти на главную страницу

Как я могу восстановить apt / dpkg?

Apt продолжает вылетать, когда я пытаюсь запустить

apt-get upgrade

xxx@xxx:/root/# sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  linux-generic linux-headers-generic linux-image-generic
The following packages will be upgraded:
  cvs dovecot-common dovecot-pop3d language-pack-en language-pack-en-base
  language-pack-gnome-en language-pack-gnome-en-base libgssapi-krb5-2
  libk5crypto3 libkrb5-3 libkrb5support0 libssl0.9.8 login openssl passwd
15 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
1 not fully installed or removed.
Need to get 0B/14.9MB of archives.
After this operation, 3,731kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Preconfiguring packages ...
(Reading database ...
dpkg: warning: files list file for package `cvs' missing, assuming package has no files currently installed.
(Reading database ... 141611 files and directories currently installed.)
Preparing to replace cvs 1:1.12.13-12ubuntu1 (using .../cvs_1%3a1.12.13-12ubuntu1_amd64.deb) ...
Unpacking replacement cvs ...

И он просто зависает :(, CTRL + C ничего не делает, я убил dpkg и затем применил

sudo killall -9 dpkg
sudo killall -9 apt-get

но dpkg продолжает работать :(

Мне удалось убить все процессы в какой-то момент и попытаться удалить cvs (думал, что это проблема, но мне не повезло).

Попробуй это,

когда вы застряли в этой ситуации, фоновый текущий процесс с помощью CTRL + Z

это должно снова дать вам оболочку.

тогда делай pgrep dpkg | xargs kill -9 # убить все процессы, соответствующие строке dpkg

pgrep apt-get | xargs kill -9 # убить все процессы, соответствующие строке apt-get

dpkg --purge cvs # удалить установленный в данный момент пакет cvs

apt-get update # обновить списки пакетов из ваших репозиториев apt

apt-get install cvs # установить пакет cvs из обновленных репозиториев

Только что сам столкнулся с этой ошибкой - видимо, здесь она известна и активно работает:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/624877

Сначала я бы попытался выяснить, что пытается сделать процесс и почему он мог там застрять. Скорее всего, это проблема, которая в некоторой степени не зависит от отсутствующего списка файлов (который вы уже решили, установив ту же самую версию пакета сверху; тогда dpkg просто сгенерирует новый список файлов из нового пакета).

Я думаю, что с вашей файловой системой может быть что-то не так, например, петля жестких ссылок каталогов или другая несогласованность, которая сбивает ядро ​​с толку; таким образом, первым шагом для меня в этой ситуации было бы подтвердить это (например, проверив, в какой функции ядра заблокирован процесс), и, если это действительно так, перезагрузить и принудительно проверить файловую систему.