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.
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 GUIupgrade-manager
, the following script will set a local repository for zoom, which will auto-update every timeapt-get update
runs:Alternatively, you can use the following script to update zoom:
Both methods will continue to work as long as Zoom keeps updating the same location and file.
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
then you can reinstall it via
snap
. Do so either in Terminal:or by use of the
snap-store
which can be installed withthen updating all snap packages is done by
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.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.
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.
Step 2: Add this to your list of repositories. This step tells apt to use the key to check the repo.
I used the first option in Niry's excellent answer (more or less) to create a local repository during
apt-get update
and via theAPT::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:Add the command
dpkg-sig --verify zoom_amd64.deb
thus: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.
If the update failed, you'll get a message like this:
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: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.
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.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.)