在终端中更新Zoom

就像世界上许多人一样,我的生活完全转移到了像Zoom这样的视频通话平台上。
当我运行终端时,大部分软件都会自动更新。
$ sudo apt-get update
$ sudo apt-get upgrade

然而,似乎Zoom并不以这种方式进行更新,它会定期要求手动安装更新。
是否有一种通过终端自动更新Zoom的方法,例如添加正确的软件源?即使在他们的帮助中心中的“终端”说明也要求每次更新都进行手动下载。

你最初是如何安装Zoom的? - totalynotanoob
1我不完全确定;我想它可能是从官方Zoom网站下载的。 - Remy
3根据Zoom的下载和更新页面,唯一官方支持的方式是手动安装。所以除非有人特意为你做了这件事(也可能违背Zoom的意愿),否则你将没有办法。抱歉。请参考页面:https://support.zoom.us/hc/en-us/articles/204206269-Installing-or-updating-Zoom-on-Linux - totalynotanoob
8个回答

目前,Zoom没有官方的PPA存储库,但有一个非官方的Snap包。然而,上次我尝试使用zoom-client Snap包时,它无法在每次更新后保留我的本地偏好设置。有时候它也会滞后于更新。
如果你想使用apt-get、apt或GUI的upgrade-manager,以下脚本将为Zoom设置一个本地存储库,该存储库将在每次运行apt-get update命令时自动更新:
#!/usr/bin/env bash

url=https://zoom.us/client/latest/zoom_amd64.deb
debdir=/usr/local/zoomdebs
aptconf=/etc/apt/apt.conf.d/100update_zoom
sourcelist=/etc/apt/sources.list.d/zoomdebs.list

sudo mkdir -p $debdir
( echo 'APT::Update::Pre-Invoke {"cd '$debdir' && wget -qN '$url' && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release";};' | sudo tee $aptconf
  echo 'deb [trusted=yes lang=none] file:'$debdir' ./' | sudo tee $sourcelist
) >/dev/null

sudo apt update
sudo apt install zoom

或者,您可以使用以下脚本来更新Zoom:
#!/usr/bin/env bash

url=https://zoom.us/client/latest/
file=zoom_amd64.deb
cd ~/Downloads

wget -qN $url$file
downloadedVer=`dpkg -f $file version`

dpkgReport=`dpkg -s zoom`
echo "$dpkgReport" | grep '^Status: install ok' > /dev/null && \
  installedVer=`echo "$dpkgReport" | grep ^Version: | sed -e 's/Version: //'`

if [ "$installedVer" != "$downloadedVer" ]; then
  sudo dpkg -i $file
else
  echo "Zoom is up to date"
fi

只要Zoom继续更新相同的位置和文件,这两种方法都将继续有效。

软件包'zoom'没有安装候选项- 嗯嗯 - Robin

你可以安装一个非官方的snap软件包,虽然稍微滞后一些,但可以通过终端轻松更新。
如果你以非snap方式安装了Zoom,你必须先卸载。 尝试通过apt-get进行卸载。
sudo apt-get remove <zoom package name>

然后您可以通过snap重新安装它。请在终端中执行此操作:
sudo snap install zoom-client

或者通过使用snap-store,可以安装它。
sudo snap install snap-store

然后通过更新所有的Snap软件包来完成。
sudo snap refresh

@JRodrigoF snap并不官方且有些滞后,但你可以通过终端轻松更新,而不必重新下载每个版本的官方安装程序。 - totalynotanoob
1这个快照的启动时间是多久?10秒钟吗?这个快照简直就是一堆没用的垃圾。 - maxadamo
小心使用快照版本,一些功能可能无法正常工作。相机的模糊/背景可能会导致卡顿。在Wayland上只能分享屏幕的一部分,不支持窗口或全屏。而且这部分分享甚至可能无法正常工作。 - undefined

Zoom在Ubuntu存储库中不可用。从您提供的页面来看,似乎也无法通过PPA进行安装,至少没有官方支持。
apt和您的GUI软件中心只处理可以通过/etc/apt/sources.list或PPA源或snaps进行更新的软件包。
在snap store中有一个zoom-client的snap,但看起来您最初没有使用这种方法安装软件,所以您需要按照开发者在您提供的链接中的手动安装和更新/升级说明进行操作。

3'zoom-client' snap 可在 snap store 中获取。幸运的是,OP 记得他们是如何安装 Zoom 的。 - user535733
Zoom在我的Synaptic软件包管理器中。@Nmath - fixit7
请注意,zoom-client 这个快照并非由 Zoom 公司维护。然而,我相信维护者 (ogra) 在 Canonical 公司工作,或者至少曾经工作过。 - undefined

为了在Ubuntu上自动更新Zoom,我编写了this tool
这是一个安装/卸载脚本,用于systemd计时器/服务,每天检查Zoom网站上是否有比本地安装的更高版本。如果有更高版本,则从Zoom网站下载Linux .deb包并安装。 不能保证我会维护它,但对我来说,这个解决方案现在可行。

在这里有一个非官方的 Zoom apt 软件仓库: https://github.com/mwt/zoom-apt-repo 该软件仓库每隔12小时下载最新的 Zoom 软件包,并检查 deb 文件上的 gpg 密钥并添加到仓库中。
要安装,请运行以下命令: 步骤 1:将 GPG 证书添加到密钥环文件夹。这不会自动信任该密钥。
sudo wget -O /usr/share/keyrings/mwt.asc https://mirror.mwt.me/my/gpgkey

第二步:将此添加到您的存储库列表中。这一步告诉apt使用密钥来检查存储库。
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/mwt.asc by-hash=force] https://mirror.mwt.me/my/deb any zoom" > /etc/apt/sources.list.d/mwt.list'

来自指示:https://www.matthewthom.as/mirrors/#zoom


你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community
1这是一个替代官方deb仓库或PPA的最佳选择。 - dtrunk

我使用了Niry 的出色回答的第一种选项(或类似的选项)来在apt-get update期间创建了一个本地仓库,并通过apt配置文件中的APT::Update::Pre-Invoke指令完成。谢谢 Niry。

我还添加了一些额外步骤进行即时包验证...

(不幸的是,根据 SE 规则,我似乎无法将此后续评论内联添加为评论?)

序言

你会注意到Niry的方法在/etc/apt/sources.list.d/zoomdebs.list中的repo定义中添加了可信标志deb [trusted=yes lang=none]。这意味着你本地repo的校验和被明确地信任。这些校验和仅从下载的文件创建而来。虽然这个deb包相对安全(因为wget中有https),但这并不排除zoom.us托管的zoom_amd64.deb文件在其网站上发生了变化。大多数软件包系统都会进行某种形式的软件包签名验证。我的系统软件包管理器(除非另有指示)通过获取并检查Release文件上的签名,然后从Packages文件中获取相应的安全软件包校验和来执行此操作。 那么我还需要采取哪些额外步骤呢? 首先,你需要安装debsig-verify。使用apt-get install命令安装它,或者其他方式也可以。然后按照Niry的第一种选项进行操作。在生成的文件/etc/apt/apt.conf.d/100update_zoom中,它看起来有点像这样:
APT::Update::Pre-Invoke {"cd /usr/local/zoomdebs && wget -qN https://zoom.us/client/latest/zoom_amd64.deb && && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release";};

将命令dpkg-sig --verify zoom_amd64.deb添加如下:
APT::Update::Pre-Invoke {"cd /usr/local/zoomdebs && wget -qN https://zoom.us/client/latest/zoom_amd64.deb && dpkg-sig --verify zoom_amd64.deb && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release";};

现在你需要Zoom软件包维护者的gpg密钥。根据你的偏执程度选择最适合你的方式获取它。我只是使用了:wget -O Zoom.pubkey.pem https://zoom.us/linux/download/pubkey,但你也可以去Ubuntu的密钥服务器上获取,例如:https://keyserver.ubuntu.com/...。然后,如果你对此感到满意,将其安装到apt的gpg密钥环中: sudo apt-key add Zoom.pubkey.pem 如果一切看起来都很好,当你运行apt-get update时,你应该会在输出的顶部附近看到以下内容。
Processing zoom_amd64.deb...
GOODSIG _gpgbuilder 396060CADD8A75220BFCB369B903BF1861A7C71D 1643092553

如果更新失败,您将会收到如下消息:

E: Problem executing scripts APT::Update::Pre-Invoke 'cd /usr/local/zoomdebs && wget -qN https://zoom.us/client/latest/zoom_amd64.deb && dpkg-sig --verify zoom_amd64.deb && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release'
E: Sub-process returned an error code

Zoom版本5.12.6及更高版本有新的公钥(请参见:https://support.zoom.us/hc/en-us/articles/9836712961165)。 此外,dpkg-sig --verify未使用该密钥,我通过apt-key add添加了它,我不得不通过gpg --import导入(用于root用户)。 我不确定这是否是正确的方法。 另外,apt-key已被弃用,请参见https://askubuntu.com/a/1307181/476544。 - weemonger

你可以使用以下一般方法,在Zoom服务器上提供的文件zoom_amd64.deb的定期下载副本来创建自己的本地APT存储库:
  1. 建立一个个人仓库,并将其添加到您的APT源中。这些说明可能有点过时,可以在这里找到必要的更新。

  2. 设置一个本地cron作业,定期下载Zoom软件包,比如每月一次。

    要下载的文件是https://zoom.us/client/latest/zoom_amd64.deb(根据这里)。由于没有APT仓库,文件名中也没有版本号,所以只能偶尔进行猜测性下载。但是该软件包目前的大小仅为40 MiB,所以还算可以接受。cron作业必须将文件放入个人仓库,并运行第一步创建的仓库的更新脚本。

  3. 从现在开始,更新Zoom将包含在您通常的sudo apt update && sudo apt upgrade过程中,或者使用图形化软件包管理器或软件更新程序进行相应操作。

优点:由于这不涉及在任何地方上传zoom_amd64.deb,Zoom的人们不能反对这一点,而如果有人制作了PPA并将文件上传到那里,他们可能会反对。

 

(这还不是一个完整的答案,我还没有尝试过。当你更详细地了解这种方法的工作原理时,请随时评论或改进。)

3不要使用cron job来下载,我建议使用apt hooks。 - niry

作为问题标题可以解释为如何在终端中“更新”(与“安装”相对)Zoom,我在这里提供以下信息。帮助页面告诉我们安装和更新的步骤完全相同。
https://zoom.us/download 然后简单地
sudo apt install ./zoom_amd64.deb 无论您是否已经安装了Zoom。