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
打包的过程中,它经历如下的几个阶段:
- pull: Download or retrieve artifacts defined for a part.
- build: Build artifacts defined for a part. Build systems capable of running parallel build jobs will do so unless “–no-parallel-build” is specified.
- stage: Stage the part’s built artifacts into the common staging area.
- prime: Final copy and preparation for the snap.
- snap: Create a snap.
清除一个 Snap 应用在编译过程中的文件:
napcraft clean