使用 snap 安装特定的先前版本的软件包?

Cor*_*ein 48 ubuntu package-management kubernetes snap

我想在机器上安装kubectl版本1.2.4。Kubernetes 文档推荐snap用于在 Ubuntu 上安装。

snap install --help不是很有用,一个有前途的参数--revision=不起作用:

$ sudo snap install --revision=1.2.4 kubectl
error: cannot decode request body into snap instruction: invalid snap revision: "\"1.2.4\""
Run Code Online (Sandbox Code Playgroud)

我怀疑这--revision需要 SHA 而不是 semver。

使用的apt-get约定package=1.2.3也不起作用:

$ sudo snap install kubectl=1.2.4
error: snap "kubectl=1.2.4" not found
Run Code Online (Sandbox Code Playgroud)

使用文档似乎对这个问题保持沉默。

有人知道吗?

小智 54

  1. 你可以运行snap info kubectl它给你一个 kubectl 版本列表。
  2. 然后你可以像这样使用 --channel 安装你喜欢的版本,sudo snap install kubectl --channel=1.6/stable --classic 或者如果你想升级/降级到特定版本: sudo snap refresh kubectl --channel=1.6/stable --classic

似乎 1.2.4 版本在 snap 中不可用,在这种情况下,您可以下载可执行文件 https://storage.googleapis.com/kubernetes-release/release/v1.2.4/bin/linux/amd64/kubectl

  • 为什么我们需要`--classic`? (4认同)
  • “--classic”意味着快照不是使用特定权限(即严格模式)构建的,因此添加“--classic”意味着它将像具有大多数权限的传统二进制文件一样运行。 (2认同)