1. snap vs. apt
apt所采用的包是deb包,deb包最初是Debian Linux推出的。由于ubuntu基于debian,ubuntu將其集成到了apt包管理器中。apt可以自動解決軟件之間依賴問題,ubuntu創(chuàng)建了一個類似apple store的軟件商店。
snap是Canonical公司發(fā)布的全新的軟件包管理方式,它類似一個容器擁有一個應(yīng)用程序所有的文件和庫,各個應(yīng)用程序之間完全獨立。所以使用snap包的好處就是它解決了應(yīng)用程序之間的依賴問題,使應(yīng)用程序之間更容易管理。但是由此帶來的問題就是它占用更多的磁盤空間。
snap最大的特點就是使用了容器來管理軟件,容器帶來最大的好處就是:
- 軟件運行更加安全
- 獨立和更加易控的版本
- 軟件互不干預(yù)
snap的特點是:
- 易于打包軟件和發(fā)行
- 自動升級,你安裝的軟件永遠(yuǎn)都是最新的
- 支持大量的Linux發(fā)行版
- 易于版本回滾和改變.
- 容易構(gòu)建軟件項目
- 同時支持開源和閉源軟件發(fā)行.
- Snaps更加安全
2. snap常用命令
# 查看版本
snap version
# 查找軟件
snap find "media player"
# 查看軟件信息
snap info vlc
# 安裝軟件
snap install vlc # 默認(rèn)使用stable channel
snap install vlc --channel=edge # 指定 channel
snap switch vlc --channel=stable # 切換channel
# snap 安裝軟件目錄在 `/snap/bin`,該目錄已加入 `$PATH`,因此可以直接在命令行運行相應(yīng)的程序。
# 列出所有已安裝的軟件
snap list
snap list --all vlc # 列出所有已安裝的版本
# 更新已安裝的軟件
snap refresh vlc
# 回滾軟件版本,snap默認(rèn)會保留2各版本
snap revert vlc
# 啟用/禁用軟件
snap enable/disable vlc
# 刪除軟件
snap remove vlc # 有些系統(tǒng)會緩存31天
snap remove vlc --purge # 徹底清除
# 后臺服務(wù)列表
snap services
# 啟動、停止、重啟后臺服務(wù)
snap restart lxd
snap restart lxd.daemon
snap start lxd.daemon
snap start --enable lxd.daemon
snap stop lxd.daemon
snap stop --disable lxd.daemon
# 查看后臺服務(wù)日志
snap logs lxd
snap logs lxd -f # 持續(xù)監(jiān)控
3. snap隔離級別
有三種隔離級別:
-
Strict - 嚴(yán)格
默認(rèn)級別,大多數(shù)snap軟件都是用該級別。該級別可以認(rèn)為是安全的,因為它僅提供了最小的訪問權(quán)限。在沒有特殊授權(quán)的的情況下,軟件不能訪問文件、網(wǎng)路、進(jìn)程等系統(tǒng)資源。
-
Classic - 傳統(tǒng)
和傳統(tǒng)安裝的軟件一樣,可以訪問系統(tǒng)資源。因此,需要手動授權(quán),或在安裝時帶上
--classic參數(shù)。 -
Devmode - 開發(fā)模式
為開發(fā)者提供的特殊模式。軟件可以完全訪問系統(tǒng)資源,并會輸出調(diào)試信息。安裝時需帶上
--devmode參數(shù)。
4. snap安裝目錄
當(dāng)你在安裝完 snap 后,你會發(fā)現(xiàn)在在根目錄下會出現(xiàn)如 /dev/loop0 的掛載點,這些掛載點正是 snap 軟件包的目錄。Snap 使用了 squashFS 文件系統(tǒng),一種開源的壓縮,只讀文件系統(tǒng),基于 GPL 協(xié)議發(fā)行。一旦 snap 被安裝后,其就有一個只讀的文件系統(tǒng)和一個可寫入的區(qū)域。應(yīng)用自身的執(zhí)行文件、庫、依賴包都被放在這個只讀目錄,意味著該目錄不能被隨意篡改和寫入。
當(dāng)你在安裝完 snap 后,會在根目錄下生成一個 snap文件夾,使用snap安裝的applications都在此文件夾中:
快捷方式在:/snap/your_app_name/current/usr/share/applications
配置文件在:/var/snap/your_app_name/current/etc/