Как восстановить удаленные & ldquo; dpkg & rdquo; каталог?

К сожалению, я удалил каталог dpkg при снятии блокировки. По ошибке я набрал

root@sam:~$ rm -r /var/lib/dpkg

Теперь, когда я пытаюсь установить / удалить пакеты, он показывает мне следующую ошибку.

E: Could not open lock file /var/lib/dpkg/lock - open (2: No such file or directory)

Что мне теперь делать?

34
задан 2 February 2016 в 23:21

4 ответа

root + rm + -r = бедствие

Итак что вы приговорили к погибели?

ls -l /var/lib/dpkg/
total 9964
drwxr-xr-x 2 root root    4096 nov 28 11:18 alternatives
-rw-r--r-- 1 root root      11 sep 18 14:08 arch
-rw-r--r-- 1 root root 2573807 nov 28 11:18 available
-rw-r--r-- 1 root root 2561322 nov 28 10:25 available-old
-rw-r--r-- 1 root root       8 abr 24  2013 cmethopt
-rw-r--r-- 1 root root     538 sep 25 17:24 diversions
-rw-r--r-- 1 root root     457 sep 25 17:24 diversions-old
drwxr-xr-x 2 root root  483328 nov 28 11:17 info
-rw-r----- 1 root root       0 nov 28 11:18 lock
drwxr-xr-x 2 root root    4096 mar 22  2013 parts
-rw-r--r-- 1 root root     135 abr 24  2013 statoverride
-rw-r--r-- 1 root root 2269113 nov 28 11:18 status
-rw-r--r-- 1 root root 2268870 nov 28 11:18 status-old
drwxr-xr-x 2 root root    4096 nov 28 11:18 triggers
drwxr-xr-x 2 root root    4096 nov 28 11:18 updates

Вы удалили 5 каталогов, файл статуса и т. д. Итак, давайте попробуем исправить вещи. Сначала создайте каталог:

sudo mkdir -p /var/lib/dpkg/{alternatives,info,parts,triggers,updates}

Восстановите некоторые резервные копии:

sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status

Теперь давайте посмотрим, работает ли ваш dpkg (начните молиться):

apt-get download dpkg
sudo dpkg -i dpkg*.deb

Если все в порядке, восстановите и ваши базовые файлы:

apt-get download base-files
sudo dpkg -i base-files*.deb

Теперь попробуйте обновить список пакетов и т. д.:

dpkg --audit
sudo apt-get update
sudo apt-get check

Теперь давайте сделаем глубокий вдох. Фух. Выполните ls -l / var / lib / dpkg и сравните с приведенным выше списком. Если какой-то -старый файл отсутствует, не беспокойтесь, он будет там завтра.

74
ответ дан 2 February 2016 в 23:21

Ну пакет dpkg (система управления пакетами Debian) обеспечивает низкоуровневую инфраструктуру для обработки установки и удаления пакетов программного обеспечения Debian. идея, и вы можете вернуть его, выполнив-

Загрузив файл с помощью wget :

wget https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.16.1.2ubuntu7.2.tar.bz2

Распакуйте его в папку xxx.

tar -xvf dpkg_1.16*
cd dpkg-1.16*
./configure
make
sudo make install

надеюсь, что это сработает.

2
ответ дан 2 February 2016 в 23:21

Восстановить вашу систему из резервной копии . Вы ведь делали бэкапы? Резервное копирование системы и данных имеет решающее значение при возникновении непредвиденных ситуаций, таких как эта (ошибка пользователя) и сбой оборудования. Если вам не удалось создать резервные копии, как описано здесь , вы можете попытаться восстановить данные.

В будущем я предлагаю вам резервное копирование на регулярной основе, чтобы избежать катастрофической потери данных . И я сомневаюсь, что вы забудете, что, как сказал @Braiam: « root + rm + -r = бедствие »

1
ответ дан 2 February 2016 в 23:21

Просто выполните следующие шаги, убедитесь, что вы можете восстановить файлы, по крайней мере, apt-get или dpkg будет работать.

sudo cp /var/backups/dpkg.status.0  /var/lib/dpkg/

sudo mv /var/backups/dpkg.status.0  /var/backups/status

sudo mkdir /var/lib/dpkg/updates

После этого теста, будет ли это работать или нет.

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

Надеюсь, это сработало. Если не комментарий ниже. Имейте в виду, будьте предельно осторожны, играя с sudo + rm -rf.

0
ответ дан 2 February 2016 в 23:21

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

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