20

Like many people around the world, my life has moved entirely online through videocalling platforms like Zoom.

Most of my software updates automatically through the terminal when I run

$ sudo apt-get update
$ sudo apt-get upgrade

However, it seems that Zoom is not updated this way, and it keeps periodically asking for manual installation of updates.

Is there a way update Zoom automatically through the terminal, e.g. by adding the right repository? Even the 'terminal' instructions in their Help Centre ask for a manual download for every update.

3
  • how did you originally install zoom? Aug 29, 2020 at 20:19
  • I'm not entirely sure; I imagine it was probably a download from the official Zoom website.
    – Remy
    Aug 29, 2020 at 20:22
  • 3
    according to zoom's download and update page the only officially supported way is manually. so unless someone else goes out of their way (and propably against zoom's will) you will be out of luck. sorry. see the page at: support.zoom.us/hc/en-us/articles/… Aug 29, 2020 at 20:31

7 Answers 7

23

At the moment, there is no official PPA for zoom, but there is an unofficial snap. However, last time I tried, the zoom-client snap did not keep my local preferences every update. It was also behind on updates at times.

If you want to use apt-get, apt or the GUI upgrade-manager, the following script will set a local repository for zoom, which will auto-update every time apt-get update runs:

#!/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

Alternatively, you can use the following script to update 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

Both methods will continue to work as long as Zoom keeps updating the same location and file.

11

You can install an unofficial snap package that is lagging behind a little but ads the ease of updating through terminal.

If you have Zoom install by any way other than snap you must first uninstall. Try uninstalling via apt-get

sudo apt-get remove <zoom package name>

then you can reinstall it via snap. Do so either in Terminal:

sudo snap install zoom-client

or by use of the snap-store which can be installed with

sudo snap install snap-store

then updating all snap packages is done by

sudo snap refresh
2
  • @JRodrigoF the snap is unofficial and lagging behind a little. but you get the ease of updating through terminal instead of re-downloading the official installer of every version. Jun 9, 2021 at 14:16
  • what is the boot time for this snap? 10 seconds? Snap is useless crap.
    – maxadamo
    Dec 6, 2021 at 11:03
7

Zoom is not available in Ubuntu repositories. It also doesn't appear that the software can be installed via PPA, at least not officially, from the page you linked.

apt and your GUI software center only deal with packages that can be updated via sources in /etc/apt/sources.list or PPA sources or snaps.

There is a zoom-client snap in the snap store, but it appears that you did not originally install the software using this method, so you will need to follow the manual installation and update/upgrade instructions from the developer of the software via the link that you referenced.

2
  • 3
    The 'zoom-client' snap is available in the snap store. Happily, the OP recalled how they installed Zoom.
    – user535733
    Aug 29, 2020 at 20:36
  • Zoom is in my synaptic package manager. @Nmath
    – fixit7
    Feb 14, 2021 at 0:55
6

To automate zoom updates on Ubuntu I wrote this tool.

It's a install/uninstall script for a systemd timer/service that checks daily whether there is a newer version of zoom available on the website than the one that is installed locally. If there is a newer version, it downloads the Linux .deb package from the zoom website and installs it. No guarantees I'll maintain this but for me this solution works for now.

0

I used the first option in Niry's excellent answer (more or less) to create a local repository during apt-get update and via the APT::Update::Pre-Invoke instruction in the apt configuration files. Thank you Niry.

I added some additional steps for on-the-fly package verification...

(Unfortunately I can't seem to add this follow-up as a comment inline; because of SE rules?)

Preamble

You'll notice that Niry's method adds the trusted flag deb [trusted=yes lang=none] to the repo definition in /etc/apt/sources.list.d/zoomdebs.list. This means that your local repo's list of checksums are explicitly trusted. These checksums were created from the downloaded file alone. While that deb is reasonably secure (as secure as zoom's download instructions (because https in the wget)), this does not however preclude the file zoom_amd64.deb, hosted by zoom.us, from somehow having been changed on their website. Most package systems do a package signature verification of one form or another. My system's package manager, (unless told not to) does this by pulling and checking the signature on the Release file via Release.gpg and then obtaining corresponding secure package checksums from the Packages file.

What were my additional steps then?

First you'll need debsig-verify. apt-get install – it, or whatever. Then follow Niry's guide option 1. In the resulting file /etc/apt/apt.conf.d/100update_zoom which looks a bit like this:

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";};

Add the command dpkg-sig --verify zoom_amd64.deb thus:

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";};

Now you'll need the Zoom package maintainer's gpg key. Get it how best suits your level of paranoia. I just used: wget -O Zoom.pubkey.pem https://zoom.us/linux/download/pubkey but you could also go to e.g. Ubuntu's keyserver: https://keyserver.ubuntu.com/.... Then, if you're happy with that install it into apt's gpg keyring: sudo apt-key add Zoom.pubkey.pem

If everything looks good then when you run apt-get update you should see the following, probably somewhere near the top of the output.

Processing zoom_amd64.deb...
GOODSIG _gpgbuilder 396060CADD8A75220BFCB369B903BF1861A7C71D 1643092553

If the update failed, you'll get a message like this:

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
0

There is an unofficial Zoom apt repo available here: https://github.com/mwt/zoom-apt-repo

The repo downloads the latest package from Zoom every 12 hours, checks the gpg key on the deb file and adds it to the repository.

To install, just run the following commands:

Step 1: Add the GPG certificate to your keyrings folder. This does not automatically trust the key for anything.

sudo wget -O /usr/share/keyrings/mwt.asc https://mirror.mwt.me/my/gpgkey

Step 2: Add this to your list of repositories. This step tells apt to use the key to check the repo.

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'
1
  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Apr 19 at 6:50
-1

You could use the following general approach to create your own, local APT repository with a regularly downloaded copy of the file zoom_amd64.deb as provided on the Zoom server:

  1. Set up a personal repository and add it to your APT sources. These instructions are probably a bit outdated, with the necessary updates found here.

  2. Set up a local cron job to download the Zoom package regularly, let's say once a month.

    The file to download is https://zoom.us/client/latest/zoom_amd64.deb (according to here). Since there is no APT repository, and no version number in the filename, speculative downloading every now and then is the only option. But the package is currently "only" 40 MiB in size, so it's kind of acceptable. The cron job has to place the file into the personal repository and also run the update script of that repository created in the first step.

  3. From now on, updating Zoom is included in your usual sudo apt update && sudo apt upgrade process resp. the equivalent done with a graphical package manager or software updater.

Advantage: since this does not involve uploading zoom_amd64.deb anywhere, Zoom folks can't be against this, unlike if somebody made a PPA and uploaded the file there.

 

(This is not yet a complete answer, and I did not try it out yet. Feel free to comment or improve when you find out in more detail how this approach works.)

1
  • 3
    Instead of cron job to download, I suggest to use apt hooks.
    – niry
    Feb 14, 2021 at 0:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.