1 snap 简介

Snap 是桌面服务器、云服务器和IoT设备的应用程序包,它具备易于安装、安全、跨平台、无依赖(占用资源多)等特性;其中:
snap 既是命令行接口,又是一种应用程序包的格式;
snapd 是管理和维护snaps 应用的后台服务;
snapcraft 是用来构建自己应用的命令行工具和框架;
snap store 是snap的应用商店,可以保存用户上传snap应用;

Snap是Ubuntu母公司Canonical于2016年4月发布Ubuntu16.04时候引入的一种安全的、易于管理的、沙盒化的软件包格式,与传统的dpkg/apt有着很大的区别。

snap 软件包被设计成用来隔离并封装整个应用程序。这些概念使得 snapcraft 提高软件安全性、稳定性和可移植性的目标得以实现,其中可移植性允许单个 snap 软件包不仅可以在 Ubuntu 的多个版本中安装,而且也可以在 Debian、Fedora 和 Arch 等发行版中安装。snapcraft 网站对其的描述如下:为每个 Linux 桌面、服务器、云端或设备打包任何应用程序,并且直接交付更新。

Snap可以让开发者将他们的软件更新包随时发布给用户,而不必等待发行版的更新周期;其次Snap应用可以同时安装多个版本的软件,比如安装Python2.7和Python3.3。
截至2020-12月,预安装snap的系统包括如下:

KDE NeonManjaro
Solus 3 and aboveUbuntu 20.04 LTS (Focal Fossa)
Ubuntu 18.04 LTS (Bionic Beaver)Ubuntu 16.04.4 LTS (Xenial Xerus)
Most recognised Ubuntu flavoursZorin OS

以下系统没有预安装,但可以通过官方文档来安装:

系统版本
Arch LinuxCentOS
Debianelementary OS
FedoraGalliumOS
Kali LinuxKDE Neon
KubuntuLinux Mint
LubuntuManjaro
openSUSEParrot Security OS
Pop!_OSRaspberry Pi OS
Red Hat Enterprise Linux (RHEL)Solus
UbuntuXubuntu
Zorin OS

2 功能

2.1 常用命令

  1. 安装snap
    apt install -y snapd snapcraft
    安装后可以查看snap 版本
    # snap version
    snap    2.48+18.04
    snapd   2.48+18.04
    series  16
    ubuntu  18.04
    kernel  4.15.0-126-generic
    
  2. 查看|搜索软件信息
    1) 查看安装的软件包
    snap list
    2)搜索安装包
    snap find|search terminal(可以模糊搜索,也可以指定具体包名称)
    
  3. 安装|卸载|升级软件包
    1) 安装软件
    snap install [准确包名]
    2)卸载软件
    snap remove [准确包名] 
    3)更新软件包
    snap refresh [准确包名],若未指定则更新所有的包
    4)查看软件信息
    snap info [准确包名]
    snap 安装的ui软件桌面快捷方式位置:var/lib/snapd/desktop/applications
    

2.2 snap 安装vlc

正常情况下直接 snap install vlc 即可一步安装完 vlc 播放器

# snap install vlc
error: snap "vlc" has "install-snap" change in progress
错误原因:笔者之前是使用ubuntu softwarecenter 按照了下vlc,安装过程中进行了撤销
解决方法:
# snap changes
ID   Status  Spawn               Ready  Summary
12   Doing   today at 13:09 CST  -      Install "vlc" snap from "latest/stable" channel
发现安装的ID为12, 此处通过 abort 取消该安装:
# snap abort 12
重新安装:
# snap install vlc
# snap install vlc
Download snap "vlc" (1700) from channel "stable"                       6%  149kB/s 32.0m

2.3 snap 安装mysql-workbench

使用snap 可以快速安装mysql-workbench,如果非snap安装则需要在官方下载对应的deb包或者添加mysql-workbench的源,然后在dpkg 或者 apt-get来安装,安装过程及容易出现依赖问题,从而增加安装成本。因此建议直接使用snap安装。

snap install mysql-workbench-community
mysql-workbench-community 8.0.22 from Tonin Bolzan (tonybolzan) installed

2.4 常见经典软件

redis-desktop-manager 
Lens
mysql-workbench-community
simplescreenrecorder-brlin

3 常见问题

  1. 安装失败处理方法
    如果安装失败,则可以通过snap changes 查看正在进行中的ID,然后通过snap abort ID 来取消安装,然后再重新snap install app_name 来安装即可;
  2. snap 安装当然软件大部分在 /var/lib/snapd 中,该文件不可以转移到其它目录(转移+ln),转移后可以正常安装软件,但是无法打开软件
  3. snap 默认会在 /snap 目录存放各种app的信息,如果安装了很多app会严重占用系统存储,因此实际中我们可以用机械盘分出一个分区,然后挂在到 /snap 目录; 如果不确认snap 会使用多少 空间的话,可以通过 lvcreate 的方式创建一个分区,后续动态扩容分区即可。
    若不清楚如何使用 lvcreate, 可以参考笔者博文 Ubuntu小技巧16–常见命令使用方法 ->1.15 磁盘相关命令
  4. snap 下载很慢怎么办?
    # snap install snap-store-proxy
    # snap install snap-store-proxy-client
    
    参考 大陆地区ubuntu使用snap下载速度过慢问题

4 说明

snap 官网
snap 官方文档
snap 应用商店
什么是snap软件包?

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐