如何卸載今天安裝的所有軟體包?

如何卸載今天安裝的所有軟體包?

今天我試圖將 musepack 編碼器支援內建到 ffmpeg 中,我無意中破壞了一些東西,但我不確定我安裝的哪個軟體包破壞了它們。如何刪除今天安裝的所有軟體包,並更仔細地從頭開始?

我可以在“歷史記錄”中今天日期下的“Ubuntu軟體中心”中看到它們的列表,但我不想一一卸載它們,因為有數百個要做。

答案1

grep -e `date +%Y-%m-%d` /var/log/dpkg.log | awk '/install / {print $4}' | uniq | xargs apt-get -y remove

發現於命令列fu對我來說效果很好

答案2

該文件/var/log/apt/history.log有您需要的內容。看看答案:如何一次重新安裝多個已刪除的軟體包?這是一個更詳細的答案。

答案3

免責聲明:Nala 仍處於開發階段,不建議用於任何專業用途。

對於apt包裹

如果您準備好使用命令列來安裝新軟體包,則可以透過apt名為 的更現代的前端獲得簡單的撤消功能nala(對於 22.04,您必須啟用「universe」儲存庫)。注意:這僅適用於apt/.deb包。

sudo apt install nala

從此時起,使用nala以下命令在您的系統上安裝新軟體包:

sudo nala install <package-name>

將安全性更新等留在unattended-upgrades包中。

現在,當您執行該命令時nala history,您將獲得使用 nala 運行的命令列表,包括已安裝的軟體包。若要僅過濾新安裝,請使用:

nala history | grep install

歷史記錄功能的另一個好處是您可以撤消歷史記錄中的任何步驟,以便您可以輕鬆地反轉軟體包安裝過程。這可以透過發出命令來完成:

sudo nala history undo <ID>

哪裡<ID>是您要撤銷的歷史清單中的交易的 ID 號碼。

對於snap包裹

Snap 有自己的「撤銷」功能,您可以輕鬆恢復到先前安裝的版本。這是透過以下方式完成的:

sudo snap revert <package-name>

如果您想還原到快照包的特定版本,也可以說明這一點;

sudo snap revert <package-name> --revision <rev ID>

對於快照,也看這裡

相關內容