Linux上使用Snap包管理命令 這份使用指南要收藏

如果你在使用 Ubuntu 及其衍生版本,「Snap 軟件包」對(duì)你來(lái)說(shuō)應(yīng)該不會(huì)感到陌生。它是 Ubuntu 母公司 Canonical 推廣的一種打包格式,可以在幾乎任何 Linux 發(fā)行版上安裝和使用。
雖然 Ubuntu 提供了優(yōu)秀的圖形化軟件管理工具,我們絕大多數(shù)時(shí)間并不需要使用命令行來(lái)管理 Snap 軟件包,但命令行擁有更強(qiáng)的功能和靈活性,學(xué)會(huì)如何使用可以幫你更好地掌控系統(tǒng)。
但由于種種原因,Snap 主要在 Ubuntu 及其衍生系統(tǒng)上使用。說(shuō)直白一點(diǎn)就是火拼不過 Flatpak,你可以通過這篇文章了解 Flatpak 和 Snapcraft 的優(yōu)缺點(diǎn)對(duì)比。
一、什么是 Snap 和 Snapd
Snap 是由 Ubuntu 開發(fā)商 Canonical 推出的一種通用軟件包格式,旨在簡(jiǎn)化軟件分發(fā),而且與具體的 Linux 發(fā)行版無(wú)關(guān)。
在不同的 Linux 發(fā)行版中,通常會(huì)使用各自的包管理器和格式,比如:
- Debian 系使用的 APT
- Fedora/RHEL 系使用的 DNF
- Arch Linux 系使用的 Pacman 等
但在不同系的 Linux 發(fā)行版中,各包管理器和軟件包存在兼容性問題,而 Snap 類似于 Flatpak,它通過容器化技術(shù),將應(yīng)用程序及其依賴項(xiàng)打包成一個(gè)獨(dú)立的包,來(lái)解決兼容性問題。以下是 Snap 的主要特點(diǎn):
- 通用兼容性:可以在不同 Linux 發(fā)行版上運(yùn)行,開發(fā)者無(wú)需為每個(gè)發(fā)行版創(chuàng)建單獨(dú)的包。
- 隔離和安全性:每個(gè) Snap 都在獨(dú)立的環(huán)境中運(yùn)行,不受其他應(yīng)用影響,提升了安全性。
- 自動(dòng)更新:Snap 應(yīng)用可以在后臺(tái)自動(dòng)更新,讓你始終使用最新版本。
- 依賴管理:Snap 包含了所有所需的依賴項(xiàng),無(wú)需額外安裝其他庫(kù)。
- 輕松回滾:如果更新出現(xiàn)問題,可以方便地回滾到先前版本。
除了 Snap,另一個(gè)關(guān)鍵組件是 snapd,它是管理 Snap 包的后臺(tái)服務(wù),負(fù)責(zé)安裝、更新和刪除 Snap 包。簡(jiǎn)單來(lái)說(shuō):
- Snap 是實(shí)際的應(yīng)用包,包含了應(yīng)用程序和所有依賴項(xiàng),能在任何支持 Snap 的 Linux 發(fā)行版上運(yùn)行。
- snapd 是負(fù)責(zé)管理這些 Snap 包的后臺(tái)服務(wù),確保應(yīng)用的安全性、更新以及與系統(tǒng)的隔離。
接下來(lái)我們就進(jìn)入實(shí)操階段,學(xué)習(xí)如何在 Ubuntu 系統(tǒng)上使用 Snap 管理軟件。
二、基本 Snap 命令
2.1 搜索軟件包
你可以通過關(guān)鍵字或軟件包名稱在 Snapcraft 應(yīng)用商店中查找所需軟件包:
snap find <關(guān)鍵字或軟件包名稱>
例如,使用以下命令搜索與 GIMP 相關(guān)的軟件包:
snap find gimp
搜索可用 snap 軟件包
2.2 查看軟件包詳情
可以使用以下命令,查看 Snap 軟件包的詳細(xì)信息,包括版本、描述、發(fā)布者和渠道等:
snap info <軟件包名稱>
查看 snap 軟件包信息
輸出結(jié)果中的關(guān)鍵信息包括:
- Name:軟件包的正式名稱。
- Publisher:發(fā)布者個(gè)人或組織。
- Channels:包括以下版本和渠道選項(xiàng):
- Stable:穩(wěn)定版本。
- Candidate:接近穩(wěn)定的測(cè)試版本。
- Beta:可能有新功能但不穩(wěn)定。
- Edge:最前沿的開發(fā)版本,通常不穩(wěn)定。
2.3 安裝 Snap 軟件包
sudo snap install <軟件包名稱>
可以通過-channel=<channel>
選項(xiàng)來(lái)指定渠道,從特定渠道安裝軟件包:
sudo snap install <軟件包名稱> --channel=preview/candidate
可以使用snap refresh
命令,將已經(jīng)安裝的軟件包切換到另一個(gè)渠道:
sudo snap refresh <軟件包名稱> --channel=latest/stable
2.4 卸載 Snap 軟件包
你可以通過以下命令來(lái)卸載 Snap 軟件包,也可以一次卸載多個(gè)包:
sudo snap remove <軟件包名稱> sudo snap remove <軟件包1> <軟件包2>
要徹底刪除軟件及相關(guān)數(shù)據(jù),可以添加--purge
選項(xiàng)來(lái)清除用戶數(shù)據(jù)或配置文件:
sudo snap remove <軟件包名稱> --purge
三、管理已安裝的 Snap 軟件包
3.1 列出已安裝的 Snap 軟件包
要查看系統(tǒng)中已安裝的 Snap 軟件包,請(qǐng)使用以下命令:
snap list
列出已安裝的 snap 軟件包
3.2 手動(dòng)更新 Snap 軟件包
雖然 Snap 軟件包通常會(huì)自動(dòng)更新,但你也可以手動(dòng)觸發(fā)更新:
檢查并更新所有已安裝的軟件包:
sudo snap refresh
更新所有 snap 軟件包
只更新特定的軟件包:
sudo snap refresh <軟件包名稱>
3.3 僅查看可用更新
要查看有哪些更新可用,而不立即安裝,可以使用:
sudo snap refresh --list
查看 snap 軟件包可用更新
3.4 回滾到之前版本
當(dāng)某個(gè) Snap 軟件包遇到問題時(shí),可以回滾到之前的版本:
sudo snap revert <軟件包名稱>
回滾 snap 軟件包版本
四、Snap 進(jìn)階用法
4.1 禁用或啟用 Snap 軟件包
你可以在不卸載和重裝的情況下,臨時(shí)停用或啟用 Snap 軟件包:
sudo snap disable <軟件包名稱> # 禁用 Snap 軟件包 sudo snap enable <軟件包名稱> # 啟用 Snap 軟件包
啟用或禁用 snap 軟件包
4.2 設(shè)置 Snap 自動(dòng)更新時(shí)間
默認(rèn)情況下,Snap 軟件包會(huì)每天自動(dòng)更新 4 次。我們可以設(shè)置刷新計(jì)時(shí)器,調(diào)整自動(dòng)更新的時(shí)間段。例如,將更新安排在夜間時(shí)段:
sudo snap set system refresh.timer=3:00-4:00
設(shè)置 Snap 自動(dòng)更新時(shí)段
4.3 切換更新渠道
我們還可以隨時(shí)切換特定軟件包的更新渠道,例如「stable」、「beta」或「edge」:
sudo snap switch --channel=latest/stable <軟件包名稱> # 更換渠道 sudo snap refresh <軟件包名稱> # 應(yīng)用更改
4.4 跟蹤和管理 Snap 更改
使用以下命令,查看系統(tǒng)上 Snap 的所有更改記錄,包括安裝、更新、刪除或回滾等操作:
snap changes
查看 Snap 變更記錄
通過更改 ID 查看特定更改的詳細(xì)信息:
snap change <ID>
在遇到問題時(shí),還可以按 ID 中止更改進(jìn)程:
sudo snap abort <ID>
4.5 設(shè)置 Snap 別名
為了簡(jiǎn)化復(fù)雜命令,我們可以通過Snap 的別名功能,為已安裝的 Snap 應(yīng)用程序創(chuàng)建快捷命令:
sudo snap alias <軟件包名稱> <別名> # 指定別名sudo snap unalias <別名> # 取消別名
4.6 使用 Snap 日志排查問題
Snap 的日志功能是診斷 Snap 應(yīng)用程序和服務(wù)問題的強(qiáng)大工具。你可以通過日志,識(shí)別啟動(dòng)失敗或運(yùn)行異常等問題。
sudo snap logs <軟件包名稱>
可以添加-f
選項(xiàng)來(lái)實(shí)時(shí)監(jiān)控錯(cuò)誤日志輸出,類似于 Linux 中的tail -f
命令。
相關(guān)文章
Flatpak和Snapcraft怎么選? Linux軟件包管理系統(tǒng)優(yōu)缺點(diǎn)對(duì)比
Linux 軟件的打包和分發(fā)方式在過去幾年中也取得了長(zhǎng)足地進(jìn)展,本文將探討 Flatpak 和 Snapcraft 之間的關(guān)鍵差異,它們各自的優(yōu)/缺點(diǎn),以期望幫助用戶找到更適合自己的一款2024-10-18linux服務(wù)器重啟命令哪個(gè)好用? Linux服務(wù)器重啟命令匯總
在 Linux 系統(tǒng)中,最嚴(yán)謹(jǐn)?shù)闹貑⒚钍?shutdown -r now,該命令直接將系統(tǒng)重啟,而不進(jìn)行任何清理或準(zhǔn)備工作,確保系統(tǒng)徹底重啟,但也有很多其他命令,詳細(xì)如下文介紹2024-10-17教你如何在Linux中使用apt命令? Linux APT命令實(shí)戰(zhàn)教程
apt是一個(gè)軟件包管理工具,apt命令相當(dāng)強(qiáng)大,要是在Ubuntu和Debian系統(tǒng)中使用,可以用來(lái)對(duì)軟件進(jìn)行安裝等操作,需要超級(jí)管理員(root)權(quán)限進(jìn)行操作2024-09-29apt 和 apt-get有什么區(qū)別? Linux包管理解密
為什么 Debian 系 Linux 發(fā)行版同時(shí)擁有apt和apt-get這兩個(gè)雷同的命令?他們之間有什么區(qū)別?詳細(xì)請(qǐng)看下文介紹2024-09-29已存在10多年! Linux圈曝出災(zāi)難級(jí)漏洞 附緩解方案
Linux圈曝出嚴(yán)重遠(yuǎn)程代碼執(zhí)行RCE漏洞,已存在10多年,幾乎影響所有GNU/Linux發(fā)行版,目前尚未有修復(fù)補(bǔ)丁,不過可以緩解,解決方案如下2024-09-27linux怎么刪除分區(qū)? Linux系統(tǒng)刪除分區(qū)的教程
在Linux系統(tǒng)中,分區(qū)管理是非常重要的一項(xiàng)工作,在使用Linux系統(tǒng)的過程中,有時(shí)候我們需要?jiǎng)h除某個(gè)分區(qū)來(lái)釋放存儲(chǔ)空間或重新規(guī)劃硬盤空間,那么,如何在Linux系統(tǒng)上刪除分2024-09-14Linux下使用fdisk命令進(jìn)行磁盤分區(qū)(圖文詳解)
FDISK是一個(gè)用于硬盤分區(qū)的工具,特別是在較早的操作系統(tǒng)版本中,如Windows 98和早期的Linux系統(tǒng)中,F(xiàn)DISK是進(jìn)行硬盤分區(qū)的主要工具,這里就為大家分享一下linux系統(tǒng)中使用2024-08-29深度操作系統(tǒng)deepin V23發(fā)布下載:Linux 6.6 LTS 內(nèi)核+UOS AI助手上線
深度操作系統(tǒng) deepin V23 版本更新發(fā)布下載,搭載 Linux 6.6 LTS 內(nèi)核,全新 DDE,深度融合 AI 能力,上線 UOS AI 助手等 AI 應(yīng)用2024-08-16在Linux中如何卸載軟件? 掌握強(qiáng)制卸載軟件的技巧
Linux如何卸載軟件?在本文中,我們將闡述怎樣在Linux中使用強(qiáng)制卸載方法來(lái)卸載軟件,我們將介紹三種基本方式:使用命令行、使用卸載工具和自動(dòng)刪掉文件2024-05-27如何在linux中創(chuàng)建新用戶? 在Linux中創(chuàng)建新用戶命令的使用方法
在Linux系統(tǒng)管理中,用戶管理是最基礎(chǔ)且重要的一環(huán),創(chuàng)建新用戶不僅關(guān)乎系統(tǒng)安全,還涉及到資源分配、權(quán)限控制等多個(gè)方面,下面我們就來(lái)分享三種創(chuàng)建新用戶的技巧2024-04-17