Ubuntu Snap 介紹

海_纳百川發表於2024-08-31

Ubuntu Snaps

Ubuntu Snaps 是 Ubuntu 的母公司 Canonical 於 2016 年 4 月釋出 Ubuntu16.04 LTS(LongTermSupport,長期支援版)時引入的一種容器化的軟體包格式。自 Ubuntu16.04 LTS 起,Ubuntu 作業系統可以同時支援 Snap 及 Debian 這兩種格式的安裝包。

與傳統的 dpkg/apt 有著很大的區別。Ubuntu Snaps 可以讓開發者將他們的軟體更新包隨時釋出給使用者,而不必等待 Ubuntu 自身的發行版更新週期。其次 Snap 應用可以同時安裝多個版本的軟體而不會互相干擾,一個 Snap 應用的安裝包擁有所有依賴的檔案和庫,各個 Snap 應用之間完全獨立。比如同時安裝 Python2.7 和 Python3.3 而不會造成衝突,這就是所謂的容器化軟體包格式。由此帶來的問題就是 Snap 應用會佔用更多的磁碟空間。

snapd 是 Snaps 軟體包的管理用具,指令為 snap。Snapcraft 是開發人員將其程式打包為 Snap 格式的工具,可以從 GitHub 倉庫自動構建,指令為 snapcraft

REFS

  • https://snapcraft.io/
  • https://tutorials.ubuntu.com/tutorial/basic-snap-usage#0
  • https://tutorials.ubuntu.com/tutorial/advanced-snap-usage#0

Snaps 工具使用示例

安裝 Snaps 支援

sudo apt update  
sudo apt install snapd 
sudo apt install snapcraft

登入:使用 Ubuntu One 賬戶

snap login your@email.lol

從 SnapStore 尋找釋出在商店裡的 Snap 應用

sudo snap find
sudo snap find | grep  $SNAP_NAME

安裝一個 Snap 應用

sudo snap install $SNAP_NAME

解除安裝一個 Snap 應用

sudo snap remove $SNAP_NAME

檢視一個 Snap 的詳細資訊

snap info $SNAP_NAME

顯示已安裝的 Snap 應用列表

sudo snap list

更新一個已安裝的 Snap 應用

sudo snap refresh $SNAP_NAME

還原 Snap 應用到以前安裝的版本

sudo snap revert $SNAP_NAME

編譯一個 Snap 應用

編譯一個 Snap 應用:如果你開發或擁有了一個 Snap 專案,那麼你只需要執行以下指令就會得到一個副檔名為 .snap 的檔案,這個就是我們所需要的 Snap 應用安裝檔案。

$ cd <your_poject_dict>
$ snapcraft

snapcraft 打包的過程中,它經歷如下的幾個階段:

  1. pull: Download or retrieve artifacts defined for a part.
  2. build: Build artifacts defined for a part. Build systems capable of running parallel build jobs will do so unless “–no-parallel-build” is specified.
  3. stage: Stage the part’s built artifacts into the common staging area.
  4. prime: Final copy and preparation for the snap.
  5. snap: Create a snap.

清除一個 Snap 應用在編譯過程中的檔案

napcraft clean