Apt

如何重新創建 /var/lib/dpkg/status?

  • September 3, 2021

我已經刪除了一些文件/var/lib/dpkg/,即:

/var/lib/dpkg/status
/var/lib/dpkg/available
/var/lib/dpkg/info/*

我了解 Debian 使用這些文件來保存有關已安裝軟體包的一些資訊。現在,當我這樣做時apt-get update,我收到以下錯誤:

Reading package lists... Error!
E: Could not open file /var/lib/dpkg/status - open 
(2: No such file or directory)
E: The package lists or status file could not be parsed or opened.

據我了解FHS,位於其中的文件/var不應該是系統關鍵的。評估這些應該是臨時文件、日誌、記憶體等。

因此有沒有辦法重新創建已刪除的文件?

如果您查看Filesystem Hierarchy Standard 中給出的 /var 的目的,它會說:

/var包含可變數據文件。這包括假離線目錄和文件、管理和日誌數據以及臨時和臨時文件。

請注意,“臨時和臨時”文件只是它包含的內容之一。它還包含“假離線目錄和文件”以及“管理和日誌數據”。您刪除了關鍵的“管理數據”。

它繼續解釋為什麼/var存在:

/var在這裡指定是為了能夠以/usr只讀方式掛載。在系統執行期間(與安裝和軟體維護相反)寫入的所有內容都/usr必須在/var.

這是關鍵/var:其中的數據會發生變化,不像/usr(僅在您添加/刪除/更新軟體時會發生變化)。

進一步的部分解釋了 ; 的各個子目錄/var。例如,/var/lib(您刪除的文件曾經存在的地方)包含“與應用程序或系統有關的狀態資訊”,定義為“程序在執行時修改的數據,並且與特定主機有關”。

真的不應該在不知道特定文件的用途的情況下刪除文件。對於您刪除的文件,除非您有這些文件的備份,否則我認為唯一要做的就是備份/home/etc並重新安裝。在您這樣做之前,您將無法使用dpkg(和 APT 等)。除此之外,該系統應繼續執行。

引用自:https://unix.stackexchange.com/questions/161866