代码改变世界

Ubuntu Snap 简述

2019-12-10 15:22  云物互联  阅读(1003)  评论(0编辑  收藏  举报

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