Случайно удален / var / lib / dpkg / info /, теперь у меня проблемы с установкой / удалением пакетов, выдает сообщения об ошибках, потому что не могу найти информацию об установленных пакетах.
Есть ли способ спасти систему или нужно полностью переустановить debian? : /
Вы должны иметь возможность регенерировать каталог, используя что-то вроде этого:
for i in $(dpkg -l|awk '/^ii/ {print $2}')
do
apt-get --reinstall -y install $i
done
Этот фрагмент должен переустановить каждый пакет, который вы уже установили. Это также обновит все. Если вы не хотите этого делать, вам придется расширить сценарий, чтобы установить конкретную версию, которую вы в настоящее время установили, что не гарантируется, поскольку эти пакеты могут больше не существовать в репозитории.
Дополнительная информация и немного другой подход: http://people.adams.edu/~cdmiller/posts/Ubuntu-dpkg-recovery/
РЕДАКТИРОВАТЬ: Важный совет из указанной выше статьи:
Некоторые пакеты по-прежнему не устанавливаются правильно, так как в / var / lib / dpkg отсутствует больше информации. В частности, пакет "ucf" важен для правильной установки ядра и, возможно, некоторых других.
Без /var/lib/dpkg/info/ucf.templates установка ядра вызывает эту ошибку:
failed to install/upgrade: User postinst hook script [/sbin/update-grub] exited with value 10
Установите ucf:
apt-get --reinstall install ucf
В этой статье описывается восстановление после полного удаления все из /var/lib/dpkg
, поэтому этот дополнительный шаг может не относиться к вашей ситуации.
Что ж, этот день был как и любой другой, почему? потому что я столкнулся с проблемой, немного похожей, но на этот раз связанной только с некоторыми пакетами со следующим сообщением:
Log started: 2019-09-22 16:12:10 dpkg: unrecoverable fatal error, aborting: reading files list for package 'apt': Bad address Log ended: 2019-09-22 16:12:10
То, как я решил это, было немного похоже, но с некоторыми отличиями, такими как:
Вместо того, чтобы переименовать весь каталог в «/ var / lib / dpkg / info /», я просто переместил файлы (имена пакетов), которые вызывали у меня проблемы, которые в данном случае были пакетом (-ами) «apt».
mlazo@mlazo-pc:~$ dpkg -l|awk '/^ii apt/ {print $2}' apt apt-config-icons apt-config-icons-hidpi apt-config-icons-large apt-config-icons-large-hidpi apt-transport-https apt-utils apt-xapian-index aptdaemon aptdaemon-data
cd /var/lib/dpkg/info mdkir ../info_back mv -v $(ls |grep -i "^apt") ../info_back/
for x in $(dpkg -l| awk '/^ii apt/ {print $2}'); do apt-get install --reinstall ${x} -y ; done
mlazo@mlazo-pc:~$ tail -n 20000 /var/log/apt/term.log |grep -i "preparing to unpack .../apt" Preparing to unpack .../apt-config-icons_0.12.0-3ubuntu1_all.deb ... Preparing to unpack .../apt-config-icons-hidpi_0.12.0-3ubuntu1_all.deb ... Preparing to unpack .../apt-config-icons-large_0.12.0-3ubuntu1_all.deb ... Preparing to unpack .../apt-config-icons-large-hidpi_0.12.0-3ubuntu1_all.deb ... Preparing to unpack .../apt-transport-https_1.6.12_all.deb ... Preparing to unpack .../apt-utils_1.6.12_amd64.deb ... Preparing to unpack .../apt-xapian-index_0.47ubuntu13_all.deb ... Preparing to unpack .../aptdaemon_1.1.1+bzr982-0ubuntu19.1_all.deb ... Preparing to unpack .../aptdaemon-data_1.1.1+bzr982-0ubuntu19.1_all.deb ...
root@mlazo-pc:/var/lib/dpkg/info# apt-get upgrade .. .. .. Processing triggers for initramfs-tools (0.130ubuntu3.8) ... update-initramfs: Generating /boot/initrd.img-5.0.0-25-generic Processing triggers for libvlc-bin:amd64 (3.0.8-0ubuntu18.04.1) ...
С шагами, которые я выполнил ранее, он был выполнен с интервалом в 30 минут, может быть, чем за 4 часа.
Надеюсь, предыдущие шаги могут быть кому-то полезны.
С уважением,
Мануэль Лазо