Как воссоздать удаленный каталог '/ var / lib / dpkg'?

Вчера у меня были некоторые проблемы с /var/lib/dpkg/lock во время обновления. Я знал, что в таких случаях удаление файла блокировки может решить проблему. Я попытался это сделать, но по ошибке удалил все каталоги DPKG. Так что теперь я не могу обновлять, устанавливать, обновлять и т. Д.

Я пробую через Центр программного обеспечения, Терминал, Qapt, Synaptic. Ничего из этого не работает, потому что все они выполняют такие операции через dpkg. И как мой dpkg поврежден, так что у меня есть проблемы.

Как я могу полностью восстановить DPKG? Я скачал файл dpkg_1.16.1.2ubuntu7_amd64.deb (я использую 64-битную Ubuntu 12.04), но что с ним делать в терминале? Простой двойной щелчок на .deb открывает Центр программного обеспечения, и вы уже знаете, что он не работает.

P.S. Терминал выдает такую ​​ошибку:

dpkg: error: cannot read info directory: No such file or directory
E: Sub-process /usr/bin/dpkg returned an error code (2)
5
задан 24 May 2014 в 04:06

2 ответа

Я недавно столкнулся с аналогичной ситуацией. И большинство ответов, которые я нашел онлайн, не помогло.

В основном, другая опция, которую Вы имеете, состоит в том, чтобы скопировать /var/lib/dpkg с другой существующей рабочей установки. Можно всегда устанавливать новую копию распределения в виртуальной машине (как VirtualBox) и копировать каталог с той чистой копии.

я попробовал бы большинство опций перед этим, поэтому дал бы ему выстрел как последнее прибежище. У меня был другой компьютер, дома выполняющий тот же дистрибутив, таким образом, я просто скопировал целый каталог на свою машину, заменив поврежденный /var/lib/dpkg. Обязательно скопируйте так, можно возвратиться к любому состоянию, Вы были в том, если это не работает.

0
ответ дан 24 May 2014 в 04:06

Хорошо я не попробовал это, но это должно работать, я думаю.

Первая начальная загрузка с живого CD.

Затем откройте терминал и тип

sudo fdisk -l

От этого Вы хотите определить раздел, что Ваша установка Ubuntu идет. Если у Вас будет только один жесткий диск, то это будет /dev/sdaX, где X число раздела.

Затем смонтируйте замену раздела установки Ubuntu X с корректным числом раздела.

sudo mount /dev/sdaX /mnt

Затем перейдите к каталогу где dpkg_1.16.1.2ubuntu7_amd64.deb и используйте эту команду:

sudo dpkg --root=/mnt -i dpkg_1.16.1.2ubuntu7_amd64.deb

Надо надеяться, это будет работать, и можно перезагрузить в установку Ubuntu и найти это dpkg был переустановлен. Если существуют какие-либо сообщенные мне ошибки, и я попытаюсь помочь Вам.

править:

Я прочитывал dpkg страница справочника и я думаем команда, которую я предложил выше, не мог бы работать. Вот соответствующие разделы страницы справочника для ссылки.

   --admindir=dir
          Change default administrative directory,  which  contains
          many   files   that  give  information  about  status  of
          installed or uninstalled  packages,  etc.   (Defaults  to
          /var/lib/dpkg)

   --instdir=dir
          Change default installation directory which refers to the
          directory where packages are to be installed. instdir  is
          also  the  directory  passed  to chroot(2) before running
          package's installation  scripts,  which  means  that  the
          scripts see instdir as a root directory.  (Defaults to /)

   --root=dir
          Changing  root  changes  instdir  to  dir and admindir to
          dir/var/lib/dpkg.

использование --root=dir как я предположил, установит административную папку на /mnt/var/lib/dpkg- папка, которую Вы удалили.

Вместо этого попробуйте это:

sudo dpkg --force-overwrite --instdir=/mnt -i dpkg_1.16.1.2ubuntu7_amd64.deb

Это будет использовать liveCD's /var/lib/dpkg папка, но --force-overwrite флаг должен заставить его установить даже при том, что это думает, что пакет уже установлен.

Удачи!

edit2

В то время как это должно работать для переустановки dpkg Я не думаю, что это восстановит списки пакета, которые находятся в /var/lib/dpkg. Следование совету в комментарии izx, чтобы скопировать каталоги/файл с liveCD и пойти от их является, вероятно, Вашим лучшим выбором.

3
ответ дан 24 May 2014 в 04:06

Другие вопросы по тегам:

Похожие вопросы: