這個帶有腳本的快速指南有助于清理舊的 Snap 版本并釋放 Ubuntu 系統中的一些磁盤空間。
我正在使用的 Ubuntu 測試系統中的磁盤空間不足。是以,我通過 GNOME 的磁盤使用分析器進行調查,以找出哪個包正在消耗寶貴的 SSD 空間。除了通常的緩存和主目錄,令我驚訝的是,我發現 Snap 和 Flatpak 消耗了大量的存儲空間。
盡管如此,我始終堅持一個規則:除非必要,否則不要使用 Snap 或 Flatpak。這主要是因為它們的安裝尺寸和其他問題。我更喜歡原生 deb 和 rpm 包。多年來,我在這個測試系統中安裝和移除了一定數量的 Snap 包。
但解除安裝後還有問題。Snap 在系統中保留了一些殘留檔案,一般使用者不知道。
是以我打開了 Snap 檔案夾
/var/lib/snapd/snaps
,發現 Snap 保留了以前安裝/解除安裝的軟體包的舊版本。
例如,在下圖中,你可以看到 GNOME 3.28、3.34 和 Wine 都被删除了。但它們還在那裡。發生這種情況是因為 Snap 的設計,它在正确解除安裝後保留已解除安裝軟體包的版本。
或者,你可以在終端中使用:
snap list --all
對于保留的版本,預設值為 3。這意味着 Snap 會保留每個軟體包的三個舊版本,包括活動版本。如果你對磁盤空間沒有限制,這是可以的。
但是對于伺服器和其他情況,這很容易遇到成本問題,它會消耗你的磁盤空間。
但是,你可以使用以下指令輕松修改計數。該值可以在 2 到 20 之間。
sudo snap set system refresh.retain=2
清理 Snap 版本
在 SuperUser 的一篇文章中,Canonical 的前工程經理 Popey 提供了一個簡單的腳本,它可以清理舊版本的 Snaps 并保留最新版本。
這是我們将用來清理 Snap 的腳本。
#!/bin/bash
#Removes old revisions of snaps
#CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
将上面的腳本以
.sh
擴充名儲存在一個目錄中(例如
clean_snap.sh
),賦予它可執行權限并運作。
chmod +x clean_snap.sh
當我運作腳本後,它減少了很多磁盤空間。該腳本還将顯示要删除的包的名稱。
結束語
對于 Snap 的設計效率如何,人們總是争論不休。許多人說,它的設計是壞的,是臃腫的,是消耗系統資源的。這種說法的某些部分是真實的,我不會否認它。如果實施和加強得當,整個沙盒應用的概念是很好的。但我相信,與 Snap 相比,Flatpak 工作做得更好。
也就是說,我希望這可以幫助你清理一些磁盤空間。盡管它隻在 Ubuntu 中進行了測試,但它應該适用于所有支援 Snap 的 Linux 發行版。
此外,請檢視我們關于 如何清理 Ubuntu的指南以及其他步驟。
最後,如果你要清理 Flatpak應用,請參閱這篇指南。
via: https://www.debugpoint.com/clean-up-snap/
作者:Arindam選題:lkxed譯者:geekpi校對:wxy
本文由 LCTT原創編譯,Linux中國榮譽推出