Linux上使用Snap包管理命令 這份使用指南要收藏
如果你在使用 Ubuntu 及其衍生版本,「Snap 軟件包」對你來說應該不會感到陌生。它是 Ubuntu 母公司 Canonical 推廣的一種打包格式,可以在幾乎任何 Linux 發(fā)行版上安裝和使用。

雖然 Ubuntu 提供了優(yōu)秀的圖形化軟件管理工具,我們絕大多數(shù)時間并不需要使用命令行來管理 Snap 軟件包,但命令行擁有更強的功能和靈活性,學會如何使用可以幫你更好地掌控系統(tǒng)。
但由于種種原因,Snap 主要在 Ubuntu 及其衍生系統(tǒng)上使用。說直白一點就是火拼不過 Flatpak,你可以通過這篇文章了解 Flatpak 和 Snapcraft 的優(yōu)缺點對比。
一、什么是 Snap 和 Snapd
Snap 是由 Ubuntu 開發(fā)商 Canonical 推出的一種通用軟件包格式,旨在簡化軟件分發(fā),而且與具體的 Linux 發(fā)行版無關。
在不同的 Linux 發(fā)行版中,通常會使用各自的包管理器和格式,比如:
- Debian 系使用的 APT
- Fedora/RHEL 系使用的 DNF
- Arch Linux 系使用的 Pacman 等
但在不同系的 Linux 發(fā)行版中,各包管理器和軟件包存在兼容性問題,而 Snap 類似于 Flatpak,它通過容器化技術,將應用程序及其依賴項打包成一個獨立的包,來解決兼容性問題。以下是 Snap 的主要特點:
- 通用兼容性:可以在不同 Linux 發(fā)行版上運行,開發(fā)者無需為每個發(fā)行版創(chuàng)建單獨的包。
- 隔離和安全性:每個 Snap 都在獨立的環(huán)境中運行,不受其他應用影響,提升了安全性。
- 自動更新:Snap 應用可以在后臺自動更新,讓你始終使用最新版本。
- 依賴管理:Snap 包含了所有所需的依賴項,無需額外安裝其他庫。
- 輕松回滾:如果更新出現(xiàn)問題,可以方便地回滾到先前版本。
除了 Snap,另一個關鍵組件是 snapd,它是管理 Snap 包的后臺服務,負責安裝、更新和刪除 Snap 包。簡單來說:
- Snap 是實際的應用包,包含了應用程序和所有依賴項,能在任何支持 Snap 的 Linux 發(fā)行版上運行。
- snapd 是負責管理這些 Snap 包的后臺服務,確保應用的安全性、更新以及與系統(tǒng)的隔離。
接下來我們就進入實操階段,學習如何在 Ubuntu 系統(tǒng)上使用 Snap 管理軟件。
二、基本 Snap 命令
2.1 搜索軟件包
你可以通過關鍵字或軟件包名稱在 Snapcraft 應用商店中查找所需軟件包:
snap find <關鍵字或軟件包名稱>
例如,使用以下命令搜索與 GIMP 相關的軟件包:
snap find gimp

搜索可用 snap 軟件包
2.2 查看軟件包詳情
可以使用以下命令,查看 Snap 軟件包的詳細信息,包括版本、描述、發(fā)布者和渠道等:
snap info <軟件包名稱>

查看 snap 軟件包信息
輸出結果中的關鍵信息包括:
- Name:軟件包的正式名稱。
- Publisher:發(fā)布者個人或組織。
- Channels:包括以下版本和渠道選項:
- Stable:穩(wěn)定版本。
- Candidate:接近穩(wěn)定的測試版本。
- Beta:可能有新功能但不穩(wěn)定。
- Edge:最前沿的開發(fā)版本,通常不穩(wěn)定。
2.3 安裝 Snap 軟件包
sudo snap install <軟件包名稱>
可以通過-channel=<channel>選項來指定渠道,從特定渠道安裝軟件包:
sudo snap install <軟件包名稱> --channel=preview/candidate
可以使用snap refresh命令,將已經安裝的軟件包切換到另一個渠道:
sudo snap refresh <軟件包名稱> --channel=latest/stable
2.4 卸載 Snap 軟件包
你可以通過以下命令來卸載 Snap 軟件包,也可以一次卸載多個包:
sudo snap remove <軟件包名稱> sudo snap remove <軟件包1> <軟件包2>
要徹底刪除軟件及相關數(shù)據(jù),可以添加--purge選項來清除用戶數(shù)據(jù)或配置文件:
sudo snap remove <軟件包名稱> --purge
三、管理已安裝的 Snap 軟件包
3.1 列出已安裝的 Snap 軟件包
要查看系統(tǒng)中已安裝的 Snap 軟件包,請使用以下命令:
snap list

列出已安裝的 snap 軟件包
3.2 手動更新 Snap 軟件包
雖然 Snap 軟件包通常會自動更新,但你也可以手動觸發(fā)更新:
檢查并更新所有已安裝的軟件包:
sudo snap refresh

更新所有 snap 軟件包
只更新特定的軟件包:
sudo snap refresh <軟件包名稱>
3.3 僅查看可用更新
要查看有哪些更新可用,而不立即安裝,可以使用:
sudo snap refresh --list

查看 snap 軟件包可用更新
3.4 回滾到之前版本
當某個 Snap 軟件包遇到問題時,可以回滾到之前的版本:
sudo snap revert <軟件包名稱>

回滾 snap 軟件包版本
四、Snap 進階用法
4.1 禁用或啟用 Snap 軟件包
你可以在不卸載和重裝的情況下,臨時停用或啟用 Snap 軟件包:
sudo snap disable <軟件包名稱> # 禁用 Snap 軟件包 sudo snap enable <軟件包名稱> # 啟用 Snap 軟件包

啟用或禁用 snap 軟件包
4.2 設置 Snap 自動更新時間
默認情況下,Snap 軟件包會每天自動更新 4 次。我們可以設置刷新計時器,調整自動更新的時間段。例如,將更新安排在夜間時段:
sudo snap set system refresh.timer=3:00-4:00

設置 Snap 自動更新時段
4.3 切換更新渠道
我們還可以隨時切換特定軟件包的更新渠道,例如「stable」、「beta」或「edge」:
sudo snap switch --channel=latest/stable <軟件包名稱> # 更換渠道 sudo snap refresh <軟件包名稱> # 應用更改
4.4 跟蹤和管理 Snap 更改
使用以下命令,查看系統(tǒng)上 Snap 的所有更改記錄,包括安裝、更新、刪除或回滾等操作:
snap changes

查看 Snap 變更記錄
通過更改 ID 查看特定更改的詳細信息:
snap change <ID>
在遇到問題時,還可以按 ID 中止更改進程:
sudo snap abort <ID>
4.5 設置 Snap 別名
為了簡化復雜命令,我們可以通過Snap 的別名功能,為已安裝的 Snap 應用程序創(chuàng)建快捷命令:
sudo snap alias <軟件包名稱> <別名> # 指定別名sudo snap unalias <別名> # 取消別名
4.6 使用 Snap 日志排查問題
Snap 的日志功能是診斷 Snap 應用程序和服務問題的強大工具。你可以通過日志,識別啟動失敗或運行異常等問題。
sudo snap logs <軟件包名稱>
可以添加-f選項來實時監(jiān)控錯誤日志輸出,類似于 Linux 中的tail -f命令。
相關文章

Flatpak和Snapcraft怎么選? Linux軟件包管理系統(tǒng)優(yōu)缺點對比
Linux 軟件的打包和分發(fā)方式在過去幾年中也取得了長足地進展,本文將探討 Flatpak 和 Snapcraft 之間的關鍵差異,它們各自的優(yōu)/缺點,以期望幫助用戶找到更適合自己的一款2024-10-18
linux服務器重啟命令哪個好用? Linux服務器重啟命令匯總
在 Linux 系統(tǒng)中,最嚴謹?shù)闹貑⒚钍?shutdown -r now,該命令直接將系統(tǒng)重啟,而不進行任何清理或準備工作,確保系統(tǒng)徹底重啟,但也有很多其他命令,詳細如下文介紹2024-10-17
教你如何在Linux中使用apt命令? Linux APT命令實戰(zhàn)教程
apt是一個軟件包管理工具,apt命令相當強大,要是在Ubuntu和Debian系統(tǒng)中使用,可以用來對軟件進行安裝等操作,需要超級管理員(root)權限進行操作2024-09-29
apt 和 apt-get有什么區(qū)別? Linux包管理解密
為什么 Debian 系 Linux 發(fā)行版同時擁有apt和apt-get這兩個雷同的命令?他們之間有什么區(qū)別?詳細請看下文介紹2024-09-29
Linux圈曝出嚴重遠程代碼執(zhí)行RCE漏洞,已存在10多年,幾乎影響所有GNU/Linux發(fā)行版,目前尚未有修復補丁,不過可以緩解,解決方案如下2024-09-27
linux怎么刪除分區(qū)? Linux系統(tǒng)刪除分區(qū)的教程
在Linux系統(tǒng)中,分區(qū)管理是非常重要的一項工作,在使用Linux系統(tǒng)的過程中,有時候我們需要刪除某個分區(qū)來釋放存儲空間或重新規(guī)劃硬盤空間,那么,如何在Linux系統(tǒng)上刪除分2024-09-14Linux下使用fdisk命令進行磁盤分區(qū)(圖文詳解)
FDISK是一個用于硬盤分區(qū)的工具,特別是在較早的操作系統(tǒng)版本中,如Windows 98和早期的Linux系統(tǒng)中,F(xiàn)DISK是進行硬盤分區(qū)的主要工具,這里就為大家分享一下linux系統(tǒng)中使用2024-08-29
深度操作系統(tǒng)deepin V23發(fā)布下載:Linux 6.6 LTS 內核+UOS AI助手上線
深度操作系統(tǒng) deepin V23 版本更新發(fā)布下載,搭載 Linux 6.6 LTS 內核,全新 DDE,深度融合 AI 能力,上線 UOS AI 助手等 AI 應用2024-08-16
Linux如何卸載軟件?在本文中,我們將闡述怎樣在Linux中使用強制卸載方法來卸載軟件,我們將介紹三種基本方式:使用命令行、使用卸載工具和自動刪掉文件2024-05-27
如何在linux中創(chuàng)建新用戶? 在Linux中創(chuàng)建新用戶命令的使用方法
在Linux系統(tǒng)管理中,用戶管理是最基礎且重要的一環(huán),創(chuàng)建新用戶不僅關乎系統(tǒng)安全,還涉及到資源分配、權限控制等多個方面,下面我們就來分享三種創(chuàng)建新用戶的技巧2024-04-17









