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

Ubuntu Snap 简述的更多相关文章

  1. ubuntu snap 包管理器

    基本使用 snap find $package snap install $package [--channel=beta] snap list snap refresh $package [--ch ...

  2. Ubuntu snap 下载慢

    解决方法 sudo apt-get install snapd sudo snap install snap-store sudo snap install snap-store-proxy sudo ...

  3. Ubuntu 18.04及Snap体验——让Linux入门更简单(转))

    https://www.linuxidc.com/Linux/2018-06/152993.htm 初次听说过Linux的时候,是大一计算机课时候老师介绍说除了Windows还有Linux.Unix操 ...

  4. Ubuntu 16.04通过Snap安装应用程序

    16.04LTS可以说是一个不寻常的5年支持版本,同时也带来了Snap应用,并通过Snap可以安装众多的软件包.需要注意的是,Snap是一个全新的软件包架构,但是同样也比其它的软件包大很多. 简单的安 ...

  5. Ubuntu: error: snap “phpstorm” has “install-snap” change in progress

    Ubuntu: error: snap “phpstorm” has “install-snap” change in progress 投稿日 : 2019-06-10 | カテゴリー : linu ...

  6. Ubuntu下安装Snap

    介绍 Snap是一个全新的软件包架构,它与其它包管理器的区别在于snap安装的app互相之间是高度隔离的,减少了互相引用. 避免了很多冲突问题. 不过这也导致了其占用的磁盘比较多. 安装 apt in ...

  7. Ubuntu中输入输出重定向及管道技术简述

    输出 1.标准输出 定义:程序在默认情况下输出结果的地方(stdout). 2.输出重定向 定义:用于把数据的输出转移到另一个地方去. 3.Ubuntu中例子 $ls > ~/ls_out  # ...

  8. Ubuntu使用snap安装常用软件

    1,snap简介 什么是snap,snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立.所以使用snap包的好处就是它解决了应用程序之间的依赖问题 ...

  9. 关于Ubuntu中snap安装软件太慢解决办法

    两种方法,一是下载好包手动安装,二设置snap的代理. 下载安装包方式 到 https://uappexplorer.com/snaps 搜索需要的 snap 包,然后下载 下载的时候选择对应的平台. ...

  10. 简述在Ubuntu终端打开文件的几种不同方法与区别

    一· 在Ubuntu下,通常用命令行打开文本文件,比如用命令gedit.more.cat.vim.less. gedit:在文本软件下打开文件,可直接修改. more ,cat 和 less :类似, ...

随机推荐

  1. #排列组合#美团2018年CodeM大赛-决赛 A-Exam

    题目 分析 因为第一名所在的学校一定会发喜报, 所以只有一个学校发喜报说明其它学校都没有发喜报 钦定第一名所在的学校为1,总方案要乘\(n\),那么两个1之间不可能出现两个相同的学校的学生 那么可以分 ...

  2. 深入理解 Java 变量类型、声明及应用

    Java 变量 变量是用于存储数据值的容器.在 Java 中,有不同类型的变量,例如: String - 存储文本,例如 "你好".字符串值用双引号引起来. int - 存储整数( ...

  3. 深入了解图片Base64编码

    title: 深入了解图片Base64编码 date: 2024/4/8 10:03:22 updated: 2024/4/8 10:03:22 tags: Base64编码 图片转换 HTTP请求 ...

  4. Docker 12 Dockerfile

    简介 Dockerfile 是用来构建 Docker 镜像的文件,可以理解为命令参数脚本. Dockerfile 是面向开发的,想要打包项目,就要编写 Dockerfile 文件. 由于 Docker ...

  5. BiLSTM算法(一)

    原理分析: BiLSTM(双向长短期记忆网络) 是一种循环神经网络(RNN)的变体,它在自然语言处理任务中非常有效,其中包括给定一个长句子预测下一个单词. 这种效果的主要原因包括以下几点: 长短期记忆 ...

  6. C 语言宏 + 内联汇编实现 MIPS 系统调用

    目录 内联汇编 宏函数 宏定义 Syscall 内联汇编 编译测试 笔者最近作业要求练习 MIPS 汇编,熟悉 MIPS 汇编代码与 C 语言代码的对应关系.然而 SPIM/MARS 仿真器不能链接共 ...

  7. jenkins 持续集成和交付——开篇(一)

    前言 因为以前就很想看下jenkins了,平时工作中也使用,主要是写脚本,但是jenkins 主要还是说运维部门来搞定的,因为公司安全部门认为程序员不应该去接触运维的东西,但是上次面试问了下,准备把这 ...

  8. CF1832B Maximum Sum 题解

    [题目描述] 给定一个长度为 \(n\) 的数列,其中每个元素互不相同,进行 \(k\) 次操作,每次可以选择删除序列中最小的两个数或最大的一个数.求操作后剩余数的和的最大值. [思路] 我们构造一组 ...

  9. Alibaba/IOC-golang 正式开源 ——打造服务于go开发者的IOC框架

    简介: IOC(inversion of control)即控制反转,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.IOC-golang 是一款服务于Go语言开发者的依赖注入框架 ...

  10. PolarDB for PostgreSQL 开源路线图

    ​简介:作者:蔡乐 本文主要分享一下Polar DB for PG的开源路线图,虽然路线图已经拟定,但是作为开源产品,所有参与者都能提出修改意见,包括架构核心特性的技术以及周边生态和工具等,希望大家能 ...