apt-get autoremove 想要刪除 1000 多個軟體包和所有內容

apt-get autoremove 想要刪除 1000 多個軟體包和所有內容

它列出了 1546 個要刪除的軟體包。包括xorgxserver等核心包。我過去輸入了“是”,正如預期的那樣,它使作業系統變磚,我不得不從頭開始重新安裝它。這次我回答“不”並嘗試:

sudo apt-get -y update --fix-missing

但它仍然想刪除一切。我該如何解決這個問題!

答案1

當人們將桌面固定到最小安裝時,這種情況最常見。但當您將任何類型的主要堆疊連接到 Ubuntu 系統時,這種情況都可能發生。

在桌面範例中,這意味著整個桌面堆疊掛在單一元包上(如ubuntu-desktop套件)。當您刪除桌面的某些元素或應用程式時(這會刪除桌面元包),該操作會使整個桌面堆疊符合自動刪除的條件。

預防

  • 當人們使用真正的桌面安裝程式時,會有一層額外的 apt-marking 保護來防止人們自動刪除整個桌面。

  • 您也可以明確安裝(或 apt 標記)您使用的應用程式。這樣,您的大部分桌面依賴項就不會被自動刪除。

    sudo apt install shotwell         # Example of explicitly installing
    sudo apt-mark manual shotwell     # Example of apt-marking
    
  • 使用任務包安裝,例如 Ubuntu MATE 可以透過以下方式安裝

    sudo apt-get install ubuntu-mate-desktop^
    

    請注意^,表示任務;如果有人想運行sudo apt autopurge ubuntu-mate-desktop元包等潛在危險命令,以這種方式安裝可以防止破壞系統。

恢復

  • 您只需重新安裝桌面任務包即可。

    sudo apt install --reinstall ubuntu-desktop^ # Example of re-installing a Ubuntu desktop task
    
  • 您也可以複製長的刪除清單並將該清單貼到安裝命令中。注意命名一個軟體包使其沒有資格進行未來的自動刪除,但您擔心的似乎是自動刪除太多而不是太少。如果您需要恢復該列表,它就在您的/var/log/apt/history.log文件中。

答案2

如果您認為自動刪除會刪除您想要保留的內容,那麼對於每個包,您應該:

  • 用於dpkg -l | grep $shortpackagename檢查是否也安裝了較新的版本,在這種情況下可以刪除舊版本
  • 用於apt rdepends $packagename查看是否有您也想要的父包。如果有,請安裝該父包或該父包的反向依賴項
  • 如果您沒有要保留的(明顯的)父依賴包,但您仍然想保留它,apt install $packagename那麼它不會被自動刪除卸載。

上面的一個很好的例子(如評論中提到的),如果自動刪除想要刪除xorg然後安裝ubuntu-desktop,您可能會發現許多自動刪除現在將安裝父依賴項,並且清單會變得更短。

一旦清單足夠短,剩下的要么是過時的軟體包,要么是您確定不關心的東西,那麼自動刪除就是安全的。

這種情況是不正常的,它不會自動發生,它是由於在某些時候從系統中刪除某些關鍵內容導致某些重要的父包(例如 ubuntu-desktop)被刪除而引起的。

相關內容