如何在 Ubuntu 中停用 Snap 並移除 snapd

如果您想要一個不包含 Snap 軟體包的 Ubuntu 系統,最乾淨的方法是先移除已安裝的 Snap 軟體包,然後移除snapdsnapd運行時,之後您可以選擇阻止Debian 再次安裝該軟體包。切勿在/snapSnap 軟體包仍安裝的情況下強制卸載或刪除系統資料夾。

本指南適用於常規的 Ubuntu Desktop 和 Ubuntu Server 安裝。它不適用於基於 snap 構建的 Ubuntu Core。 Canonical 目前的Snap 停用文件也建議在移除 snapd 軟體包之前先移除已安裝的 snap 套件。

在禁用 Snap 之前

移除 Snap 套件也可能導致您依賴的應用程式移除,包括 Ubuntu 主要以 Snap 套件形式分發的軟體。請務必先備份所有重要資料。 Snap 應用程式資料可儲存在~/snap/目前使用者目錄和/var/snap/系統級目錄中,詳情請參閱 Canonical 的Snap 資料位置參考文件。

另請注意,某些 Ubuntu Debian 軟體包旨在安裝 snap 套件。例如,目前版本中的 Ubuntu Firefox 軟體包安裝的是 Firefox snap 套件,而不是傳統的 Firefox DEB 套件。如果您永久封鎖了 snap 套件的安裝snapd,則依賴 snap 套件的軟體套件可能無法正常安裝。

1. 列出所有已安裝的 snap 套件

打開終端機並運作:

snap list

具體的列表會因 Ubuntu 版本和已安裝的軟體而異。首先移除使用者應用程序,然後再移除支援內容或基礎 snap 套件。如果某個基礎 snap 套件仍然被其他 snap 套件依賴,snapd 將拒絕移除該基礎 snap 套件,直到依賴套件被移除為止。

Ubuntu 終端機顯示了 snap list 命令和幾個已安裝的 snap 軟體包名稱
使用 snap list 指令查看卸載 snapd 前必須移除哪些元件。您系統上的軟體包名稱可能有所不同。

2. 移除已安裝的 snap 套件

按名稱刪除每個應用程式快照。使用此方法--purge會跳過自動刪除快照,並立即刪除該快照的數據,因此請僅在備份所有必要數據後才使用此方法。 Canonical 在其快照刪除指南中對此行為進行了說明。

sudo snap remove firefox --purge
sudo snap remove snap-store --purge

以上僅為範例;請跳過任何未安裝的名稱。對剩餘的應用程式 snap 套件重複此命令,然後對不再需要的內容 snap 套件和基礎 snap 套件重複此命令。snap list再次運行,直到snapd只剩下應用程式 snap 包,或直到所有 snap 包都已刪除。

Ubuntu 終端機顯示了用於刪除 Firefox 和 Snap Store 的 snap 命令,並帶有清除選項。
在移除基礎 snap 之前,先移除應用程式 snap。 `--purge` 選項可防止 snapd 在移除過程中自動建立 snap 快照。

3. 移除 snapd snap 和 snapd 軟體包

如果該快照snapd仍然存在snap list,請在刪除所有其他快照後將其刪除:

sudo snap remove snapd --purge

然後卸載提供 Snap 守護程式和命令列工具的 Debian 軟體包:

sudo apt remove --purge snapd

根據 Canonical 的停用文檔,清除snapdDebian 軟體包會刪除 Snap 的主要係統目錄,包括/var/snap`/ usr/local/snap/`、 /var/lib/snapd`/ /var/cache/snapdusr/local/snap/`、`/usr/local/snap/` 和/snap`/usr/local/snap/`。這意味著先前建議手動強制卸載核心 snap 或立即rm -rf對這些系統路徑執行破壞性命令的做法通常是不必要的。

Ubuntu 終端機顯示 sudo apt remove --purge snapd 和軟體包移除輸出
清除 snapd Debian 軟體包會移除 Snap 守護程式及其主要係統管理目錄。

4. 刪除殘留的按用戶劃分的 Snap 數據

軟體包清除操作不一定會刪除儲存在每個使用者主目錄中的 Snap 資料。確認不再需要這些檔案後,請刪除目前使用者的 Snap 目錄:

rm -rf "$HOME/snap" "$HOME/.snap"

如果電腦有多個使用者帳戶,請分別檢查每個使用者的主目錄,不要盲目刪除使用者資料。清理完成後,請登出並重新登錄,或重新啟動電腦,以刷新您的會話。

5. (選購)阻止 snapd 再次安裝

如果您只想暫時移除 Snap,完成上一步即可。如果您希望 APT 拒絕未來的snapd安裝,請建立一個 APT 首選項檔:

sudo nano /etc/apt/preferences.d/nosnap.pref

新增以下三行:

Package: snapd
Pin: release a=*
Pin-Priority: -10

儲存文件,然後檢查結果:

apt-cache policy snapd

APT 官方的apt_preferences 手冊指出,優先順序低於零會阻止安裝匹配的版本。這種權衡是有意為之:任何依賴該版本的軟體包snapd都可能安裝失敗,直到您移除此優先限制。

Ubuntu 終端機顯示了 snapd 的 APT 首選項文件,其中 Pin-Priority 設定為 -10,apt-cache 策略輸出
選購的負極 APT 引腳可防止 snapd 自動重新安裝。僅當您打算保持系統無 snapd 時才使用此功能。

如何稍後重新啟用 Snap

若要解除封鎖並恢復 Snap 支持,請刪除首選項檔案並重新安裝snapd:

sudo rm /etc/apt/preferences.d/nosnap.pref
sudo apt update
sudo apt install snapd

然後登出並重新登入或重新啟動系統。 Canonical 的Ubuntu snapd 安裝指南確認,安裝snapd軟體包可以恢復 Ubuntu 上的 Snap 支援。

留下評論

如何在Linux系統上使用Cameractrls更改網路攝影機設置

如何在Linux系統上使用Cameractrls更改網路攝影機設置

使用 Cameractrls 在 Linux 上變更網路攝影機設定:調整曝光、色彩、減少閃爍和其他支援的控件,然後檢查相容的視訊模式。

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

在 Linux 系統上,您可以使用 JetBrains Toolbox 或獨立的 tar.gz 壓縮套件安裝 PhpStorm,此外還有 Snap 和 Arch AUR 版本可供選擇。 Java 已預先安裝。

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

在 Linux 上使用 GNOME Disks 或 dd 建立 CD-ROM ISO。識別光碟機,監控複製過程,驗證鏡像,並了解何時損壞的光碟或音訊光碟需要其他工具。

如何在 XFCE 4 上設定雙面板

如何在 XFCE 4 上設定雙面板

為每個顯示器建立一個單獨的 XFCE 4 面板,將第二個面板指派給正確的輸出,調整其位置和大小,並新增所需的啟動器和狀態項目。

如何在Linux上安裝Cisco Packet Tracer

如何在Linux上安裝Cisco Packet Tracer

下載適用於 Ubuntu 64 位元系統的 Cisco Packet Tracer 9.0.1,使用 APT 安裝 DEB 軟體包,在終端機中接受許可協議,然後登入以啟動實驗環境。

如何在Linux系統下使用GIMP摳圖

如何在Linux系統下使用GIMP摳圖

在 Linux 系統上使用 GIMP 去除照片背景:描繪主體,刪除選定的背景,保持透明度,並匯出可重複使用的 PNG 檔案。

免費下載 FlightGear:官方安裝指南

免費下載 FlightGear:官方安裝指南

從官方網站免費下載 FlightGear。比較 Windows、macOS 和 Linux 版本的軟體包,安裝資料文件,即可開始您的首次飛行。

Google Tasks桌面應用程式:如何在電腦上使用

Google Tasks桌面應用程式:如何在電腦上使用

在瀏覽器中開啟 Google Tasks,新增 Chrome 捷徑或應用程式啟動,並透過行事曆和 Gmail 管理有日期的待辦事項。

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler 可以將 MP3 片段對應到鍵盤按鍵,並支援音訊循環播放。了解這款經典免費軟體的功能、其舊功能的缺失以及下載前需要檢查的事項。

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

使用目前軟體包命令在 Ubuntu、Debian、Fedora、Arch 或 openSUSE 上安裝 Wireshark,然後安全地配置即時資料包擷取。