cancel
Showing results for 
Search instead for 
Did you mean: 

Update Zoom in Debian/Ubuntu

hamletmun
Explorer
Explorer

Too bad there is no PPA for Zoom. I use this script to check for newer zoom_amd64.deb and update.

Installing or updating Zoom on Linux – Zoom Support

#!/bin/sh

echo Installed: $(cat /opt/zoom/version.txt)
echo Available: $(wget --spider https://zoom.us/client/latest/zoom_amd64.deb 2>&1 | grep Location | sed -e 's/.*prod\/\(.*\)\/.*/\1/')

REPLY=n
echo -n "Download and install? "
read REPLY
if [ $REPLY = y ] ; then
  wget -c https://zoom.us/client/latest/zoom_amd64.deb
  sudo apt install ./zoom_amd64.deb
  rm zoom_amd64.deb
fi

 

1 ACCEPTED SOLUTION

jeremyjustin
Community Champion | Employee
Community Champion | Employee

hi @hamletmun thank you for your post on the Zoom Community! In regards to updating with PPA, that is a great suggestion and I believe it would help to have you enter this functionality as a feature request. Currently, our product team reviews all feature requests submitted via our feedback form https://zoom.us/feed. I highly encourage you to submit this feature there! It would help to add a little bit about your company, how many employees this is impacting, etc. 

 

If this has answered your question to your satisfaction, please click the "Accept as Solution" button below but if not please reply and we can continue the  discussion. Thank you!

View solution in original post

6 REPLIES 6

jeremyjustin
Community Champion | Employee
Community Champion | Employee

hi @hamletmun thank you for your post on the Zoom Community! In regards to updating with PPA, that is a great suggestion and I believe it would help to have you enter this functionality as a feature request. Currently, our product team reviews all feature requests submitted via our feedback form https://zoom.us/feed. I highly encourage you to submit this feature there! It would help to add a little bit about your company, how many employees this is impacting, etc. 

 

If this has answered your question to your satisfaction, please click the "Accept as Solution" button below but if not please reply and we can continue the  discussion. Thank you!

liam-lb
Newcomer
Newcomer

Adding a tweaked version that will automatically update when the versions don't match:

#!/usr/bin/env bash
# This script will download and install the Zoom client 

ZOOM_DEB='zoom_amd64.deb'

version_installed=$(cat /opt/zoom/version.txt)
version_available=$(wget --spider https://zoom.us/client/latest/zoom_amd64.deb 2>&1 | grep Location | sed -e 's/.*prod\/\(.*\)\/.*/\1/')

echo "Installed: ${version_installed}"
echo "Available: ${version_available}"

if [[ "${version_installed}" == "${version_available}" ]]; then
  echo "The latest version is installed. Exiting."
else
  curl -J -L -o /tmp/${ZOOM_DEB} https://www.zoom.us/client/latest/${ZOOM_DEB}

  sudo dpkg --install /tmp/${ZOOM_DEB}
  sudo apt install -f
fi

Thank you - this has been helpful for me. Recently it started hanging on the wget command so I made some updates using only curl and wanted to share them.

 

#!/usr/bin/env bash
# This script will download and install the Zoom client
# https://community.zoom.com/t5/Zoom-Meetings/Update-Zoom-in-Debian-Ubuntu/m-p/32820

arch="$(dpkg --print-architecture)"
echo "info: architecture ${arch}"
ZOOM_DL="zoom_${arch}.deb"
ZOOM_DEB=$(mktemp --tmpdir "zoom_${arch}_XXXXXX.deb")

version_installed=$(cat /opt/zoom/version.txt)
uri=$(curl --silent --no-styled-output --write-out '%{redirect_url}' https://zoom.us/client/latest/${ZOOM_DL})
version_available=$(echo ${uri} | sed -e 's/.*prod\/\(.*\)\/.*/\1/')

echo "Installed: ${version_installed}"
echo -e "Available: ${version_available} - URI: ${uri}\n"

if [[ "${version_installed}" == "${version_available}" ]]; then
echo -e "The latest version is installed. Exiting.\n"
else
echo -e "upgrade needed - downloading and will prompt to install with sudo.\n"
curl -J -L ${uri} -o ${ZOOM_DEB}
sudo dpkg --install ${ZOOM_DEB}
sudo apt install -f
fi

rm -f ${ZOOM_DEB}

 

See

https://github.com/barak/zoom-ubuntu-repo/blob/master/zoom-up

described below. It also uses curl, but it forks a process to do the download and sniffs the beginning of the downloaded data to check the version of the downloading .deb file, and if it's not an upgrade, aborts the download.

barak
Newcomer
Newcomer

I wrote a shell script that checks if the installed zoom is up to date and if not (or if it's not installed) install the latest. It uses shell tricks to initiate a download, check the version in the header as it streams in, and abort the download if it isn't newer.

 

https://github.com/barak/zoom-ubuntu-repo/blob/master/zoom-up

 

Zoom really should just put the version number in the filename of the .deb, or even better make a little repo in the proper format.

gene_wood
Newcomer
Newcomer

As Zoom only provides a .deb file to download and not an APT repo to connect to that will get updates, I made a GitHub Actions + GitHub Pages repo that you can fork and run yourself providing an APT repo that gets daily updates from Zoom.

 

https://github.com/gene1wood/zoom-apt-repository

 

The README explains how to fork the repo and set up your own so you can have your own Zoom APT repo.

1. Fork the Repository

Click here to fork the upstream repository to your own GitHub account.

2. Enable GitHub Pages

  1. Go to your forked repository
  2. Navigate to Settings ... Pages
  3. Under Build and deployment, set Source to GitHub Actions

3. Generate a GPG Signing Key

Run these commands on your local machine to create a GPG keypair that will sign your packages:

# Create a temporary directory for GPG operations
homedir=$(mktemp --directory)

# Generate a new GPG key (no passphrase for automation)
gpg --homedir "$homedir" --quick-generate-key --passphrase '' \
  "GitHub Actions Zoom APT Repo <***********>" \ 
   ed25519 sign 0

# Display the private key (you'll need this in the next step)
gpg --homedir "$homedir" --armor --export-secret-key

# Clean up the temporary directory
rm -rf "$homedir"

Copy the entire output into your clipboard, including the -----BEGIN PGP PRIVATE KEY BLOCK----- and -----END PGP PRIVATE KEY BLOCK----- lines.

4. Add the GPG Key to GitHub Secrets

  1. In your forked repository, go to Settings ... Secrets and variables ... Actions
  2. Click New repository secret
  3. Set the secret name to: ZOOM_APT_GPG_PRIVATE_KEY
  4. Paste the private key output from step 3 above as the value
  5. Click Add secret

Installing Zoom on Client Machines

After your repository is set up, configure any Debian/Ubuntu system to use it:

# Set your GitHub username
YOUR_GITHUB_USERNAME=octocat  # CHANGE THIS to your actual GitHub username

# Download and install the GPG public key
sudo curl --location --output /etc/apt/keyrings/github-actions-zoom-apt.asc \
  "https://$YOUR_GITHUB_USERNAME.github.io/zoom-apt-repository/github-actions-zoom-apt.asc"

# Add the APT repository source
echo "deb [signed-by=/etc/apt/keyrings/github-actions-zoom-apt.asc arch=amd64] " \
  "https://$YOUR_GITHUB_USERNAME.github.io/zoom-apt-repository stable main" \
  | sudo tee /etc/apt/sources.list.d/github-actions-zoom.list

# Update package lists
sudo apt update

# Install Zoom
sudo apt install zoom