如何清理 Snap 版本以釋放磁盤(pán)空間
我正在使用的 Ubuntu 測(cè)試系統(tǒng)中的磁盤(pán)空間不足。因此,我通過(guò) GNOME 的磁盤(pán)使用分析器進(jìn)行調(diào)查,以找出哪個(gè)包正在消耗寶貴的 SSD 空間。除了通常的緩存和主目錄,令我驚訝的是,我發(fā)現(xiàn) Snap 和 Flatpak 消耗了大量的存儲(chǔ)空間。
Snap 大小 - 清理前
盡管如此,我始終堅(jiān)持一個(gè)規(guī)則:除非必要,否則不要使用 Snap 或 Flatpak。這主要是因?yàn)樗鼈兊陌惭b尺寸和其他問(wèn)題。我更喜歡原生 deb 和 rpm 包。多年來(lái),我在這個(gè)測(cè)試系統(tǒng)中安裝和移除了一定數(shù)量的 Snap 包。
但卸載后還有問(wèn)題。Snap 在系統(tǒng)中保留了一些殘留文件,一般用戶(hù)不知道。
所以我打開(kāi)了 Snap 文件夾 ??/var/lib/snapd/snaps?
?,發(fā)現(xiàn) Snap 保留了以前安裝/卸載的軟件包的舊版本。
例如,在下圖中,你可以看到 GNOME 3.28、3.34 和 Wine 都被刪除了。但它們還在那里。發(fā)生這種情況是因?yàn)?Snap 的設(shè)計(jì),它在正確卸載后保留已卸載軟件包的版本。
snaps 目錄下的文件
或者,你可以在終端中使用:
snap 列出全部
對(duì)于保留的版本,默認(rèn)值為 3。這意味著 Snap 會(huì)保留每個(gè)軟件包的三個(gè)舊版本,包括活動(dòng)版本。如果你對(duì)磁盤(pán)空間沒(méi)有限制,這是可以的。
但是對(duì)于服務(wù)器和其他情況,這很容易遇到成本問(wèn)題,它會(huì)消耗你的磁盤(pán)空間。
但是,你可以使用以下命令輕松修改計(jì)數(shù)。該值可以在 2 到 20 之間。
清理 Snap 版本
在 SuperUser 的一篇文章中,Canonical 的前工程經(jīng)理 Popey ??提供了一個(gè)簡(jiǎn)單的腳本??,它可以清理舊版本的 Snaps 并保留最新版本。
這是我們將用來(lái)清理 Snap 的腳本。
將上面的腳本以 ??.sh?
?? 擴(kuò)展名保存在一個(gè)目錄中(例如 ??clean_snap.sh?
?),賦予它可執(zhí)行權(quán)限并運(yùn)行。
當(dāng)我運(yùn)行腳本后,它減少了很多磁盤(pán)空間。該腳本還將顯示要?jiǎng)h除的包的名稱(chēng)。
執(zhí)行腳本
清理后的 Snap 大小
結(jié)束語(yǔ)
對(duì)于 Snap 的設(shè)計(jì)效率如何,人們總是爭(zhēng)論不休。許多人說(shuō),它的設(shè)計(jì)是壞的,是臃腫的,是消耗系統(tǒng)資源的。這種說(shuō)法的某些部分是真實(shí)的,我不會(huì)否認(rèn)它。如果實(shí)施和加強(qiáng)得當(dāng),整個(gè)沙盒應(yīng)用的概念是很好的。但我相信,與 Snap 相比,F(xiàn)latpak 工作做得更好。
也就是說(shuō),我希望這可以幫助你清理一些磁盤(pán)空間。盡管它只在 Ubuntu 中進(jìn)行了測(cè)試,但它應(yīng)該適用于所有支持 Snap 的 Linux 發(fā)行版。
此外,請(qǐng)查看我們關(guān)于 ??如何清理 Ubuntu?? 的指南以及其他步驟。
最后,如果你要清理 Flatpak 應(yīng)用,請(qǐng)參閱 ??這篇指南??。