當前位置: 首頁>>技術教程>>正文


如何恢複已刪除的 “dpkg” 目錄?

問題描述

不幸的是,我在刪除鎖定時刪除了 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)

我現在該怎麽辦?

最佳辦法

使用根和遞歸 rm ( 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

如果一切都是 “ok”,那麽也修複您的基本文件:

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 與上述列表進行比較。如果某些 -old 文件不存在,請不要擔心,因為它會在係統正常使用時創建。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12842.html,未經允許,請勿轉載。