我犯了一個可怕的錯誤,從/usr/lib
Debian 的目錄中刪除了兩個資料夾。我刪除了python2.7/
並且pkgconfig/
我嘗試修復但沒有成功的事情:
sudo dpkg -i python2*
->“找不到平台無關的函式庫”-->“/usr/lib/pyton2.7/py_compile.py 沒有這樣的檔案”甚至透過 --> 刪除它(python;用於將來重新安裝)也
sudo dpkg -i python2.7-minimal
無法刪除,因為python2.7-minimal 依賴 python2.7-minimal (>=....deb) 並且 python2.7 依賴 python2.7-minimal (>=..._rc2.deb)
因此,只要它們沒有像所說的那樣由 dpkg“配置”,我就無法重新安裝或修復apt-get install python
它們,但也無法刪除它們以進行乾淨的重新安裝,因為它們依賴於dpkg 中的不同版本,我不知道如何解決這個問題。
那麼如何透過 dpkg 或 apt 完全刪除具有所有依賴項的套件來解決上面描述的情況呢?
答案1
如果apt
很無聊,有時可以使用dpkg
本地快取包的完整路徑手動設定正確的內容。就是這樣:
cd
到apt
儲存包的地方,即/var/cache/apt/archives/dpkg
然後 (如所須)用於安裝、拆卸、清除或諸如此類的開關,然後檔案名稱目前目錄中的包的名稱。因此要安裝幾個版本之一'foobar'最近連續安裝的版本,鍵入dpkg -i foobar<TAB>
「」鍵將bash
自動補全其餘部分,或顯示可用版本。- 如果
dpkg
說你需要'菲茲班',(或必須擺脫'菲茲班'),執行步驟 #2,其中'菲茲班'。然後嘗試步驟#2'foobar'再次。 - 重複 #2 和 #3,直到系統處於所需狀態。
這假設所需的包檔案仍然緩存在本地。有時需要在線尋找包裹。在這種情況下,所需包的版本號碼可能會有所不同不確定- 在這種情況下,/var/log/dpkg.log
有答案,只是grep
或sed
透過套件名稱,它會顯示dpkg
到目前為止已使用的版本。