问题描述
在 Ubuntu 中,已经开始使用 Snappy 进行应用管理(03/21/2021)。我们为什么要接受使用 Snappy 来管理应用呢:
1)我们别无它法:在我们使用 Ubuntu 20.04 时,只能通过 Snappy 安装 Chromium 应用。即使使用 APT 安装 Chromium,最后它还是通过 snap 安装。我们亦可使用 Debian 的 Chromium 安装包,但时这些做法都是逆势而为,我们无法阻挡 Ubuntu 采用 Snappy 管理应用(除非团结集体来抗议 Snappy 工具 :-)
2)Snappy 包含更多优秀的应用:此外,很多优秀的应用,比如 MySQL Workbench、Redis Desktop Manager 等等,亦能通过 snap 安装,否则安装过程非常繁琐,还会带来其他问题。
3)Snappy 包含最新版本的应用:在 Snap Store 中,我们可以找到最新版本的应用。对于 Linux 桌面系统来说,这是巨大的优势,让我们摆脱 Linux 软件版本过旧的问题。
虽然我们在网上经常看到禁用、卸载 Snappy 的文章,但是按照目前(03/21/2021)的趋势,我们认为 Snappy 即使未应用于服务器环境,但是在桌面环境领域中,也是非常棒的解决方案。所以,我们准备开始接受新事物,学习新技术,学习 Snappy 的使用方法。至少,在桌面环境中,我们会经常使用 Snappy 管理桌面应用。
该笔记将记录:在 Ubuntu 20.04 LTS 中(应该适用于其他版本),使用 Snappy 安装应用的入门示例(旨在快速上手),以及常见问题处理。
解决方案
我们以安装 kubectl 命令为例,演示如何使用 snap 安装 kubectl 命令:
第一步、搜索应用
# snap search kubectl
Name Version Publisher Notes Summary
kubectl 1.18.8 canonical✓ classic Command line client for controlling a Kubernetes cluster.
kubernetes-worker 0.0.1 canonical✓ - A complete Kubernetes worker
kafkactl 1.11.0 dwi-di - A command-line interface for interaction with Apache Kafka
kubectl-eks 1.10.3 canonical-cloud-snaps classic kubectl controls the Kubernetes cluster manager.
kubectl-iexec v1.6.2-next leetserve - plugin to interactively exec to a pod
client-keystone-auth v1.14.0+git36.e163280 knobby - Client plugin for kubectl to enable keystone authentication.
devoperator 1.5.1 art-hens-teeth classic DevOps tools
kube-commander 0.2.1 anatoly-rugalev - Browse your kubernetes clusters in a casual way
第二步、查看版本
查看软件包信息,获取所有可用版本:
# snap info kubectl
name: kubectl
summary: Command line client for controlling a Kubernetes cluster.
publisher: Canonical✓
store-url: https://snapcraft.io/kubectl
contact: https://www.ubuntu.com/kubernetes
license: Apache-2.0
description: |
kubectl is a command line client for running commands against Kubernetes
clusters.
For more information about kubectl, including syntax, descriptions of command operations, and
common examples, see the [overview](https://kubernetes.io/docs/reference/kubectl/overview/). For
details about each command, including all the supported flags and subcommands, see the [kubectl
reference
documentation](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands/).
snap-id: ZgG2URycDgvxSVskfoZxn44uaRMw0iwe
channels:
latest/stable: 1.18.8 2020-08-27 (1612) 10MB classic
latest/candidate: 1.18.8 2020-08-27 (1612) 10MB classic
latest/beta: 1.18.8 2020-08-27 (1612) 10MB classic
latest/edge: 1.18.8 2020-08-27 (1612) 10MB classic
1.19/stable: 1.19.0 2020-08-27 (1623) 10MB classic
1.19/candidate: 1.19.0 2020-08-27 (1623) 10MB classic
1.19/beta: 1.19.0 2020-08-27 (1623) 10MB classic
1.19/edge: 1.19.0 2020-08-27 (1623) 10MB classic
1.18/stable: 1.18.8 2020-08-26 (1612) 10MB classic
...
第三步、安装应用
snap install kubectl --classic
# 如果需要安装特定版本,使用 --channel 选项
snap install kubectl --classic --channel=1.18/stable
注意事项:
1)是否使用 --classic 选项与应用程序权限有关,
2)应用的 Snapcraft 主页,或者错误信息,会提示是否需要使用 --classic 选项。
3)或者,在第一步中,Notes 字段如果为 classic,则需要使用 --classic 选项。
第四步、运行应用
# 直接运行
/snap/bin/kubectl
# 或者,通过 snap 运行
snap run xmind
桌面图标,保存在 /var/lib/snapd/desktop/applications/ 目录中
常用其他命令
# 应用升级是自动的,如果需要手动升级:
snap refresh vlc
# 卸载应用
snap remove vlc
# 禁用或启动应用
snap disable vlc
snap enable vlc
相关链接
相关文章
参考文献